使用Awk我希望使用正则表达式匹配整个记录。默认情况下,正则表达式匹配是针对记录的一部分。
理想的解决方案是:
然而,只要他们使用Awk而不调用外部程序,任何和所有解决方案都会引起关注。
一个例子,我有:
$ ls
indata.txt t1.awk
$ cat indata.txt
a1010_
1010_
1010_b
$ cat t1.awk
/[01]*_[01]*/ { print $0 }
我明白了:
$ awk -f t1.awk indata.txt
a1010_
1010_
1010_b
这是我寻求的结果:
$ awk -f t1.awk indata.txt
1010_
答案 0 :(得分:4)
您只需要在正则表达式中添加开始和结束锚点:
/^[01]*_[01]*$/ { print $0 }
答案 1 :(得分:2)
$ gawk '/^[01]*_[01]*$/' indata.txt
1010_