Biểu thức chính quy của bạn hoạt động với cả awk
GNU và tuân thủ POSIX awk
.
Với thực tế là các ký tự e
, i
và n
phải có mặt từ 0 đến 3 lần nhưng không có ràng buộc nào nữa, phần này có thể được loại bỏ khỏi mô hình như mount
sau bởi bất cứ điều gì hoặc không có gì phù hợp. Hành động ( print $0
) cũng là hành động mặc định không cần phải được chỉ định.
Lệnh của bạn sau đó có thể được đơn giản hóa thành:
awk '/mount/'
Nếu bạn muốn phạm vi được sử dụng, bạn cần chỉ định một cái gì đó sau nó, đây là một ví dụ:
$ cat input
foo
mountx
mounte
mountee
mounteee
$ /usr/xpg4/bin/awk '/mount[ein]{0,2}$/' input
mounte
mountee
Đó là trên Solaris nơi POSIX awk
đang ở /usr/xpg4/bin
.
Hành vi tương tự trên Mint dựa trên Debian 17.1:
$ awk -V | head -1
GNU Awk 4.0.1
$ awk '/mount[ein]{1,2}$/' input
mounte
mountee
Tuy nhiên, có vẻ như mawk
, yêu cầu tuân thủ POSIX, không hỗ trợ biểu thức khoảng (dấu ngoặc).
$ mawk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
$ mawk '/mount[ein]{1,2}$/' input
$
Đây là một lỗi đã biết .