使用sed删除行直到文件结尾

use*_*418 4 linux bash sed

我正在使用sed -n '/[test1]/,/[test2]/{/[test2]/!p}' test.txt > temp.txt ..如果我只想要顶部选择,那么效果很好,但我在底部之后.

[test1]
A
B
C
[test2]
1
2
3
Run Code Online (Sandbox Code Playgroud)

但是我在[test2]之后,所以复制[test2]直到行结束.所以产生这样的输出,

[test2]
1
2
3
Run Code Online (Sandbox Code Playgroud)

Pri*_*ley 6

试试这个命令:

sed -n  '/\(^\[test2\]\)/,$p' test.txt > temp.txt
Run Code Online (Sandbox Code Playgroud)

编辑:

使用扩展正则表达式flag(-r),

 sed -n -r '/(^\[test2\])/,$p' test.txt > temp.txt
Run Code Online (Sandbox Code Playgroud)

  • 我必须记住......可以派上用场.另外,虽然值得称赞的准确性和对细节的关注,我建议这个替代方案可能更清晰:`sed -n'/ test2 /,$ p'</ tmp/file` (2认同)