如何使用sed删除所有行直到第一列中的第一个匹配?

时间:2014-03-06 15:32:25

标签: linux sed

如何使用sed删除所有行,直到第一列中的第一个匹配?结果应保留最后三行。

文件

1fff
2ddd
3zzz

 TestXXX
 TestXXX
Test        XXX
Mike
Charly

sed -i'/ Test /'file

4 个答案:

答案 0 :(得分:3)

sed -n '/^Test/,$p' oldfile > newfile

答案 1 :(得分:2)

我在perl中使用..运算符 当满足第一个条件时,它会切换 并在满足第二个时切换。

(我添加^因为你说你想要线的开头)

perl -nle 'print if /^Test/..0' file

LATE EDIT:二读时,..0不清楚。它是行号,因为在“测试”之后将不会到达行0,所以它永远不会发生。

答案 2 :(得分:0)

sed -n '/^Test/,$ p' YourFile

仅在您的测试之后打印直至结束

答案 3 :(得分:0)

这可能适合你(GNU sed):

sed -i '/^Test/,$!d' file