Regex 使用awk在特定字段上搜索正则表达式

Regex 使用awk在特定字段上搜索正则表达式,regex,bash,awk,Regex,Bash,Awk,在awk中,我可以在字段中搜索如下值: $ echo -e "aa,bb,cc\ndd,eaae,ff" | awk 'BEGIN{FS=",";}; $2=="eaae" {print $0};' aa,bb,cc dd,eaae,ff 我可以用正则表达式搜索,比如 $ echo -e "aa,bb,cc\ndd,eaae,ff" | awk 'BEGIN{FS=",";}; /[a]{2}/ {print $0};' aa,bb,cc dd,eaae,ff 我可以强制awk将regexp

在awk中,我可以在字段中搜索如下值:

$ echo -e "aa,bb,cc\ndd,eaae,ff" | awk 'BEGIN{FS=",";}; $2=="eaae" {print $0};'
aa,bb,cc
dd,eaae,ff
我可以用正则表达式搜索,比如

$ echo -e "aa,bb,cc\ndd,eaae,ff" | awk 'BEGIN{FS=",";}; /[a]{2}/ {print $0};'
aa,bb,cc
dd,eaae,ff
我可以强制awk将regexp搜索应用于特定字段吗?我在找像这样的东西

$ echo -e "aa,bb,cc\ndd,eaae,ff" | awk 'BEGIN{FS=",";}; $2==/[a]{2}/ {print $0};'
预期结果:

dd,eaae,ff
有人知道如何使用awk吗

接受的响应-操作员“~”(感谢hek2mgl):

您可以使用:

$2 ~ /REGEX/ {ACTION}
如果正则表达式应仅应用于第二个字段(例如)


在您的情况下,这将导致:

awk -F, '$2 ~ /^[a]{2}$/' <<< "aa,bb,cc\ndd,eaae,ff"
awk-F,'$2~/^[a]{2}$/'您可以使用:

$2 ~ /REGEX/ {ACTION}
如果正则表达式应仅应用于第二个字段(例如)


在您的情况下,这将导致:

awk -F, '$2 ~ /^[a]{2}$/' <<< "aa,bb,cc\ndd,eaae,ff"
awk-F,'$2~/^[a]{2}$/'