Có các chức năng sau trong một trong các hàm shell của tôi:
function _process () {
awk -v l="$line" '
BEGIN {p=0}
/'"$1"'/ {p=1}
END{ if(p) print l >> "outfile.txt" }
'
}
, vì vậy khi được gọi là as _process $arg
, $arg
được truyền vào $1
và được sử dụng làm mẫu tìm kiếm. Nó hoạt động theo cách này, vì vỏ mở rộng $1
thay cho mẫu awk! Cũng l
có thể được sử dụng trong chương trình awk, được khai báo với -v l="$line"
. Tất cả đều ổn.
Có thể theo cách tương tự đưa ra mô hình để tìm kiếm như một biến?
Theo dõi sẽ không hoạt động,
awk -v l="$line" -v search="$pattern" '
BEGIN {p=0}
/search/ {p=1}
END{ if(p) print l >> "outfile.txt" }
'
, vì awk sẽ không diễn giải /search/
như một biến, mà thay vào đó theo nghĩa đen.