Regex 使用awk在特定字段上搜索正则表达式
在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
$ 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}$/'