AWK は正規表現ではなく文字列と一致します。

AWK は正規表現ではなく文字列と一致します。

文字列をAWKと一致させるには?

文字列があると仮定すると、文字列を[(*.+含む文字列とのみ一致する必要があります[(*.+

文字列はユーザ​​ーが入力するため、正規表現をエスケープできる cli ユーティリティを知っていれば機能します。

編集する:

foo[(*.+barまた、その文字列を含む文字列とも一致する必要があります。

答え1

awk文字列比較には演算子を使用し==index(haystack, needle)文字列検索には関数を使用してください。

read -r string # user types [(*.+
{ echo 'stuff [(*.+ stuff'; echo ')]*.+'; } | awk -v string="$string" 'index($0, string)'
# output: 'stuff [(*.+ stuff'

答え2

デフォルトでは、awkは""内の文字を文字列として扱い、//内の文字を正規表現として扱います。

[root@me ~]# echo "[(*.+" | gawk '"[(*.+"'
[(*.+
[root@me~]# echo "[(*.+" | gawk '/[(*.+/'
gawk: /[(*.+/
gawk:  ^ unterminated regexp
gawk: fatal: Unmatched [ or [^: /[(*.+//

関連情報