我正在检查 awk 读取的当前行是否包含一些我正在使用的字符串:
if (/.*abc.*lab.*/)
{
}
但是如果该行中的字符串是例如
[abc ls:lab=123 ....]..
然后正确搜索字符串,但如果该行包含例如
[abc ls:key=xyz xyz. ls:lab=123 ...]..
然后即使匹配,也不会搜索该行.*abc.*lab.*
如果我在搜索时犯了一些错误,有人可以纠正我吗?
我正在检查 awk 读取的当前行是否包含一些我正在使用的字符串:
if (/.*abc.*lab.*/)
{
}
但是如果该行中的字符串是例如
[abc ls:lab=123 ....]..
然后正确搜索字符串,但如果该行包含例如
[abc ls:key=xyz xyz. ls:lab=123 ...]..
然后即使匹配,也不会搜索该行.*abc.*lab.*
如果我在搜索时犯了一些错误,有人可以纠正我吗?
您应该能够使用:
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 ...]..