0

我正在检查 awk 读取的当前行是否包含一些我正在使用的字符串:

if (/.*abc.*lab.*/)
 {
 }

但是如果该行中的字符串是例如

[abc ls:lab=123 ....]..

然后正确搜索字符串,但如果该行包含例如

[abc ls:key=xyz xyz. ls:lab=123 ...]..

然后即使匹配,也不会搜索该行.*abc.*lab.*

如果我在搜索时犯了一些错误,有人可以纠正我吗?

4

1 回答 1

1

您应该能够使用:

awk '/abc.*lab/ { print $0 }'

模式与$0整行匹配。但是,如果写成以下内容,您所写的内容也应该有效:

awk '{if (/.*abc.*lab.*/) print $0}'

或使用更简单的正则表达式:

awk '{if (/abc.*lab/) print $0}'

如果你没有 . 的if内部{ ... },那么你就有awk.

给定这样的数据文件:

[abc ls:lab=123 ....]..
then the string is searched correctly, but if the line contains e.g.

[abc ls:key=xyz xyz. ls:lab=123 ...]..

最重要的脚本产生:

[abc ls:lab=123 ....]..
[abc ls:key=xyz xyz. ls:lab=123 ...]..
于 2013-05-03T04:54:21.830 回答