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/awkmematuhi awkimplementasi UNIX lama yang dirilis pada tahun 1977. Itu disimpan pertama kali dalam sistem PATH default untuk tidak melanggar skrip yang ada sebagai awkrilis berikutnya istirahat kompatibilitas. oawkadalah sinonim dariawk
/usr/bin/nawkadalah versi "baru" dari awk, pertama kali dikirim dalam SVR3.1 pada tahun 1986. AwkStandar POSIX didasarkan pada implementasi ini. /usr/xpg4/bin/awkhampir identik dengan yang pertama, tetapi yang secara formal diperiksa terhadap tes validasi kesesuaian POSIX.
/usr/gnu/bin/awk, juga /usr/bin/gawkmerupakan varian GNU dari awk. Ini bertujuan untuk mematuhi sebagian besar atau semua standar POSIX ketika variabel lingkungan POSIXLY_CORRECTdiatur di lingkungan atau ketika dipanggil dengan -W posixopsi tetapi sebaliknya menambahkan banyak ekstensi sendiri. igawkdan pgawkitu 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-ospaket-paket yang dijamin hadir pada instalasi reguler Solaris 11, dengan demikian hanya oawk/awkdan nawkada di sana. Secara khusus, ketika Anda membuat zona non global , itu berisi secara default solaris-small-serverpaket grup sehingga biner xpg4maupun gnu awkbiner tidak tersedia. Ini dengan desain. The solaris-small-servergroup 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 awkdukungan POSIX dengan cara portabel dalam instalasi "server kecil", Anda perlu menginstal xcu4paket 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" PATHyang mengandung nawksebagai 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 awkdan mengatur Anda PATHuntuk 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 xpg4masalah yang hilang sama .
Perhatikan juga bahwa kurangnya /usr/xpg4/bin/awksistem 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/xcu4sebagai 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/awktidak ada dalam Solaris 11?nawkadalah "baruawk", AT&T yang ditingkatkanawk.