5 unix awk sed pattern-matching
aaa aaaa aaaa aaaa
sss ssss ssss ssss
ddd dddd dddd dddd
fff ffff ffff ffff
abc pattern asd fde
111 222 333 444 555
666 777 888 999 000
Run Code Online (Sandbox Code Playgroud)
期望的输出:如果
111 222 333 444 555
666 777 888 999 000
Run Code Online (Sandbox Code Playgroud)
fed*_*qui 11
只要找到模式,就设置一个标志.从那一刻开始,打印线条:
$ awk 'p; /pattern/ {p=1}' file
111 222 333 444 555
666 777 888 999 000
Run Code Online (Sandbox Code Playgroud)
或者也
awk '/pattern/ {p=1;next}p' file
Run Code Online (Sandbox Code Playgroud)
它pattern在每一行中寻找.找到它时,变量p设置为1.棘手的一点是,只有在打印时才打印线条p>0,以便打印以下行.
这是如何在两种模式之间选择线条的具体情况?当没有这样的第二种模式时.
sed '1,/pattern/d' file
Run Code Online (Sandbox Code Playgroud)
适合你的榜样.
sed '0,/pattern/d' file
Run Code Online (Sandbox Code Playgroud)
更可靠.
| 归档时间: |
|
| 查看次数: |
12959 次 |
| 最近记录: |