Pada instalasi Solaris 11 penuh atau desktop, ada tiga awk
implementasi yang tersedia, ditambah beberapa varian:
/ usr / bin / awk pkg: /system/core-os@0.5.11-0.175.3.1.0.2.0
/ usr / bin / nawk pkg: /system/core-os@0.5.11-0.175.3.1.0.2.0
/ usr / bin / oawk pkg: /system/core-os@0.5.11-0.175.3.1.0.2.0
/ usr / gnu / bin / awk pkg: /text/gawk@3.1.8-0.175.3.0.0.30.0
/ usr / bin / gawk pkg: /text/gawk@3.1.8-0.175.3.0.0.30.0
/ usr / bin / igawk pkg: /text/gawk@3.1.8-0.175.3.0.0.30.0
/ usr / bin / pgawk pkg: /text/gawk@3.1.8-0.175.3.0.0.30.0
/ usr / xpg4 / bin / awk pkg: /system/xopen/xcu4@0.5.11-0.175.3.0.0.30.0
Mereka semua "memenuhi standar", meskipun mematuhi standar yang berbeda.
/usr/bin/awk
mematuhi awk
implementasi UNIX lama yang dirilis pada tahun 1977. Itu disimpan pertama kali dalam sistem PATH default untuk tidak melanggar skrip yang ada sebagai awk
rilis berikutnya istirahat kompatibilitas. oawk
adalah sinonim dariawk
/usr/bin/nawk
adalah versi "baru" dari awk
, pertama kali dikirim dalam SVR3.1 pada tahun 1986. Awk
Standar POSIX didasarkan pada implementasi ini. /usr/xpg4/bin/awk
hampir identik dengan yang pertama, tetapi yang secara formal diperiksa terhadap tes validasi kesesuaian POSIX.
/usr/gnu/bin/awk
, juga /usr/bin/gawk
merupakan varian GNU dari awk
. Ini bertujuan untuk mematuhi sebagian besar atau semua standar POSIX ketika variabel lingkungan POSIXLY_CORRECT
diatur di lingkungan atau ketika dipanggil dengan -W posix
opsi tetapi sebaliknya menambahkan banyak ekstensi sendiri. igawk
dan pgawk
itu sendiri ekstensi untuk gawk
, yang pertama mendukung termasuk file dan yang kedua mendukung profil.
Lihat juga bab sejarah GNUawk
untuk banyak informasi berguna.
Hanya core-os
paket-paket yang dijamin hadir pada instalasi reguler Solaris 11, dengan demikian hanya oawk/awk
dan nawk
ada di sana. Secara khusus, ketika Anda membuat zona non global , itu berisi secara default solaris-small-server
paket grup sehingga biner xpg4
maupun gnu
awk
biner tidak tersedia. Ini dengan desain. The solaris-small-server
group adalah titik awal minimal yang Anda tambahkan paket yang dibutuhkan untuk aplikasi Anda untuk benar bekerja. Ini lebih aman dan efisien daripada cara sebelumnya (Solaris 10) di mana segala sesuatu yang terinstal di zona global juga diinstal pada yang non global sehingga Anda harus menghapus paket yang tidak digunakan ketika Anda ingin meminimalkan zona tersebut.
Untuk mendapatkan awk
dukungan POSIX dengan cara portabel dalam instalasi "server kecil", Anda perlu menginstal xcu4
paket dan mengatur PATH Anda ke yang sesuai dengan POSIX:
pkg install xcu4
PATH=$(getconf PATH):$PATH
Haruskah untuk beberapa alasan Anda tidak ingin menginstal paket itu, solusi adalah dengan menggunakan "kebiasaan" PATH
yang mengandung nawk
sebagai awk
, misalnya:
mkdir -p /opt/posix/bin
cp /usr/bin/nawk /opt/posix/bin/awk
PATH=/opt/posix/bin:$PATH
Atau, Anda dapat menginstal GNU awk
dan mengatur Anda PATH
untuk mendapatkannya terlebih dahulu:
pkg install gawk
PATH=/usr/gnu/bin:$PATH
Perhatikan bahwa ini tidak khusus untuk Solaris 11. Pengelompokan paket yang serupa sudah ada di bawah Solaris 10 dan sebelumnya dan utilitas yang sesuai dengan POSIX hanya diinstal pada metaclusters "Pengguna Akhir", "Pengembang" dan "Instalasi penuh". Memiliki sistem atau zona yang diinstal dengan "Core" atau "Networking support" metacluster kemudian akan mengarah pada xpg4
masalah yang hilang sama .
Perhatikan juga bahwa kurangnya /usr/xpg4/bin/awk
sistem Solaris 11 bukan kegagalan kepatuhan POSIX. Hanya instalasi Solaris lengkap yang digunakan dalam sebagian besar pengujian yang dilakukan oleh Oracle dan ISV, termasuk program sertifikasi Open Group . Instalasi yang dikurangi didukung tetapi tidak memenuhi syarat .
Jika Anda mendistribusikan skrip shell (atau aplikasi yang menyematkan skrip shell / perintah shell panggilan) untuk Solaris 11, Anda hanya perlu mendefinisikan /system/xopen/xcu4
sebagai dependensi dalam paket IPS mereka dan installer akan secara otomatis melakukan apa yang diperlukan agar skrip bekerja dengan benar:
depend fmri=pkg:/system/xopen/xcu4 type=require
Lihat https://docs.oracle.com/cd/E53394_01/html/E54820/dependtypes.html
/usr/xpg4/bin/awk
tidak ada dalam Solaris 11?nawk
adalah "baruawk
", AT&T yang ditingkatkanawk
.