我有一个简单的awk one衬里,当给定的模式匹配时,将下一行折叠到当前行上.这里是:
awk '/two/ { printf $1; next; } 1' test.txt
通过以下输入:
one two three four five six one two three four
你得到:
one twothree four five six one twothree four
请注意,“三”是折叠的“两个”,这是我想要发生的.我找到了这个解决方案(不记得在哪里),并且认为尾随的“1”似乎是导致所需效果的缺失部分.如果你拿出来,你得到:
awk '/two/ { printf $1; next; }' test.txt twotwo
作为结果.所以我的问题是,尾随的’1’做了什么,它在哪里记录?
谢谢!
对于awk,1表示true,当表达式为true时,awk默认打印当前行.
例子 :
> awk’1’/ etc / passwd将打印整个文件
> awk’0’/ etc / passwd不会打印整个文件
如果你擅长算术(或者你有想象力或编程技巧),你可以用这种行为做很多技巧.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。