使用 awk 我想使用正则表达式匹配整个记录。默认情况下,正则表达式匹配是针对记录的一部分。
理想的解决方案是:
- 无论使用何种字段分隔符,对所有字段都是通用的。
- 不要将整个输入视为单个字段并使用字符串函数手动解析它。
- 例如,以一般方式工作,而不是特定于 gawk。
然而,任何和所有的解决方案都是有意义的,只要它们使用 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_