繁体   English   中英

知道AWK中的搜索模式吗?

[英]Understand a search pattern in AWK?

我正在阅读本教程的第2.3节, 网址为-http: //www.vectorsite.net/tsawk_2.html#m2

Awk的字符串搜索功能还有更多。 可以将搜索限制在输入行内的单个字段中。

例如:

$1 ~ /^France$/

没有代码可显示此模式的工作原理。 有人可以告诉我这条线如何使用以及如何工作吗?

当然!

$ 1〜/ ^法国$ /

使用以下awk命令:

awk '$1 ~ /^France$/ { print }'

和以下输入

France 1
France1 2
france 3
- France 4
France - 5

输出将是

France 1
France - 5

$1是第一个字段的值; awk的默认设置是使用空格分隔的字段进行拆分。 /^France$/是与精确字符串France相匹配的正则表达式(使用字符串起始锚和字符串结尾锚^$ )。 最后, ~是二进制字符串运算符,它通过左侧的正则表达式匹配左侧。

请注意,正则表达式可以表示为普通的带引号的字符串,也可以指定为变量,但是当表达式为内联时,“ /.../”语法会更好,因为它更明显,并且不需要多余的转义字符串会导致表达式中有引号或反斜杠。

当然,该特定表达式将更简单,因为$1 == "France"

让我知道一个更复杂的示例是否会有所帮助。

要学习awk,请阅读《有效的awk编程》,第三版,由Arnold Robbins撰写。 不要依靠随机的网站来获得准确或有用的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM