这似乎不起作用
The next example would delete everything between "ONE" and "TWO:"
#!/bin/sh
sed '
/ONE/ {
# append a line
N
# search for TWO on the second line
/\n.*TWO/ {
# found it - now edit making one line
s/ONE.*\n.*TWO/ONE TWO/
}
}' file
Run Code Online (Sandbox Code Playgroud)
我希望删除 ONE 和 TWO 之间的所有内容。我尝试使用文件包含的文件。
[user5@mailserver ~]$ cat file
ONE
hello
TWO
Run Code Online (Sandbox Code Playgroud)
但输出就像
[user5@mailserver ~]$ ./test
ONE
hello
TWO
Run Code Online (Sandbox Code Playgroud)
我期待ONE TWO
我试图使它正确但无法做到。
这将完成工作
sed '/^ONE/,/TWO/{/^ONE/!{/TWO/!d}}' file
Run Code Online (Sandbox Code Playgroud)
/^ONE/,/TWO/查看以ONEup to开头的第一行TWO
{/^ONE/! 如果我的行不以以下开头,请执行以下操作 ONE
{/TWO/!d}}如果我的行不以TWOand开头,请执行以下操作delete
总结以上内容:
查找以ONEup开头的所有内容TWO。运行另一项检查,这意味着找到所有与“ONE andTWO ”不匹配的内容并删除其余内容。
| 归档时间: |
|
| 查看次数: |
3920 次 |
| 最近记录: |