【发布时间】:2017-04-13 18:33:36
【问题描述】:
如何使用 sed 删除所有行,直到第一列中的第一个匹配?结果应保留最后三行。
文件
1fff
2ddd
3zzz
TestXXX
TestXXX
Test XXX
Mike
Charly
sed -i '/Test/' 文件
【问题讨论】:
-
您也可以显示预期的输出吗?听起来你什么都没试过。空格是否标记新列?
如何使用 sed 删除所有行,直到第一列中的第一个匹配?结果应保留最后三行。
文件
1fff
2ddd
3zzz
TestXXX
TestXXX
Test XXX
Mike
Charly
sed -i '/Test/' 文件
【问题讨论】:
sed -n '/^Test/,$p' oldfile > newfile
【讨论】:
我会在 perl 中使用 .. 运算符
当满足第一个条件时它会打开
并在遇到第二个时关闭。
(我添加了 ^ 因为你说你想要行首)
perl -nle 'print if /^Test/..0' file
后期编辑:在二读时,..0 不清楚。它是行号,因为在“测试”之后不会到达第 0 行,所以它永远不会发生。
【讨论】:
sed -n '/^Test/,$ p' YourFile
仅在您的测试之后打印,直到结束
【讨论】:
这可能对你有用(GNU sed):
sed -i '/^Test/,$!d' file
【讨论】: