Trên bản cài đặt Solaris 11 đầy đủ hoặc dành cho máy tính để bàn, có ba awk
triển khai có sẵn, cùng với một số biến thể:
/ 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
Tất cả đều "tuân thủ tiêu chuẩn", mặc dù tuân thủ các tiêu chuẩn khác nhau.
/usr/bin/awk
đang tuân thủ awk
triển khai UNIX kế thừa được phát hành vào năm 1977. Nó được giữ đầu tiên trong hệ thống mặc định PATH không phá vỡ các tập lệnh hiện có khi các awk
bản phát hành tiếp theo phá vỡ tính tương thích. oawk
là một từ đồng nghĩa củaawk
/usr/bin/nawk
là phiên bản "mới" của awk
, lần đầu tiên được xuất xưởng trong SVR3.1 vào năm 1986. Awk
Tiêu chuẩn POSIX dựa trên việc triển khai này. /usr/xpg4/bin/awk
gần như giống hệt với cái trước, nhưng cái được kiểm tra chính thức đối với các thử nghiệm xác nhận tuân thủ POSIX.
/usr/gnu/bin/awk
, cũng /usr/bin/gawk
là biến thể GNU của awk
. Nó nhằm mục đích tuân thủ hầu hết hoặc tất cả các tiêu chuẩn POSIX khi biến môi trường POSIXLY_CORRECT
được đặt trong môi trường hoặc khi được gọi với -W posix
tùy chọn nhưng mặt khác lại thêm nhiều tiện ích mở rộng cụ thể. igawk
và pgawk
bản thân chúng là các phần mở rộng gawk
, phần đầu tiên hỗ trợ bao gồm các tệp và phần thứ hai hỗ trợ lược tả.
Xem thêm chương lịch sử GNUawk
để biết nhiều thông tin hữu ích.
Chỉ các core-os
gói được đảm bảo có mặt trên bản cài đặt thông thường của Solaris 11, do đó chỉ oawk/awk
và nawk
có ở đó. Đặc biệt, khi bạn tạo ra một khu vực mới không toàn cầu , nó chứa theo mặc định các solaris-small-server
gói nhóm nên không những xpg4
cũng không phải là gnu
awk
mã nhị phân có sẵn. Đây là do thiết kế. Các solaris-small-server
nhóm là một điểm khởi đầu tối thiểu mà bạn thêm các gói cần thiết cho các ứng dụng của bạn để làm tốt công tác. Cách này an toàn và hiệu quả hơn so với cách trước (Solaris 10) trước đây, nơi mọi thứ được cài đặt trên khu vực toàn cầu cũng được cài đặt trên khu vực không toàn cầu, do đó bạn phải xóa các gói không sử dụng khi bạn muốn giảm thiểu vùng.
Để có được POSIX awk
hỗ trợ một cách di động trong quá trình cài đặt "máy chủ nhỏ" như vậy, bạn cần cài đặt xcu4
gói và đặt PATH cho phù hợp với POSIX:
pkg install xcu4
PATH=$(getconf PATH):$PATH
Có nên đối với một số lý do bạn không muốn cài đặt gói phần mềm đó, một cách giải quyết là sử dụng một "tùy chỉnh" PATH
chứa nawk
như awk
, ví dụ như:
mkdir -p /opt/posix/bin
cp /usr/bin/nawk /opt/posix/bin/awk
PATH=/opt/posix/bin:$PATH
Ngoài ra, bạn có thể cài đặt GNU awk
và thiết lập PATH
để có được nó trước:
pkg install gawk
PATH=/usr/gnu/bin:$PATH
Lưu ý rằng điều này không dành riêng cho Solaris 11. Một nhóm gói tương tự đã tồn tại trong Solaris 10 trở về trước và các tiện ích tuân thủ POSIX chỉ được cài đặt trong các siêu dữ liệu "Người dùng cuối", "Nhà phát triển" và "Cài đặt đầy đủ". Có một hệ thống hoặc một khu vực được cài đặt với siêu dữ liệu "Lõi" hoặc "Hỗ trợ kết nối mạng" sau đó sẽ dẫn đến xpg4
vấn đề rất thiếu.
Cũng lưu ý rằng việc thiếu /usr/xpg4/bin/awk
trong hệ thống Solaris 11 không phải là lỗi tuân thủ POSIX. Chỉ cài đặt Solaris đầy đủ được sử dụng trong phần lớn các thử nghiệm được thực hiện bởi Oracle và ISV, bao gồm cả chương trình chứng nhận Open Group . Giảm cài đặt được hỗ trợ nhưng không đủ điều kiện .
Nếu bạn phân phối tập lệnh shell (hoặc ứng dụng nhúng tập lệnh shell / gọi lệnh shell) cho Solaris 11, bạn chỉ cần xác định /system/xopen/xcu4
là phụ thuộc trong gói IPS của chúng và trình cài đặt sẽ tự động làm những gì cần thiết để tập lệnh hoạt động chính xác:
depend fmri=pkg:/system/xopen/xcu4 type=require
Xem https://docs.oracle.com/cd/E53394_01/html/E54820/dependtypes.html
/usr/xpg4/bin/awk
không có trong Solaris 11?nawk
là "mớiawk
", một AT & T được cải tiếnawk
.