Ste*_*eam 0 unix linux bash awk
我正在阅读教程的第2.3节 - http://www.vectorsite.net/tsawk_2.html#m2
Awk的字符串搜索功能还有很多.搜索可以约束到输入行中的单个字段.
例如:
$1 ~ /^France$/
Run Code Online (Sandbox Code Playgroud)
没有代码显示此模式的工作原理.有人可以告诉我如何使用这条线以及它是如何工作的?
当然!
$ 1~/^法国$ /
使用以下awk命令:
awk '$1 ~ /^France$/ { print }'
Run Code Online (Sandbox Code Playgroud)
以及以下输入
France 1
France1 2
france 3
- France 4
France - 5
Run Code Online (Sandbox Code Playgroud)
输出将是
France 1
France - 5
Run Code Online (Sandbox Code Playgroud)
$1是第一个字段的值; awk的默认设置是使用空格分隔的字段进行拆分.的/^France$/是正则表达式匹配的相同字符串法国(使用启动的字符串和结束串锚^和$).最后,~是一个二进制字符串运算符,它通过右侧的正则表达式匹配左侧.
请注意,正则表达式可以表示为正常的引用字符串或者也可以在变量中给出,但是当表达式内联时,"/.../"语法更好,因为它更明显,并且不需要额外的转义,因为字符串会导致表达式中有引号或反斜杠.
当然,这个特定的表达方式会更简单$1 == "France".
让我知道一个更复杂的例子是否会有所帮助.