如何使用sed删除所有行,直到第一列中的第一个匹配?结果应保留最后三行。
文件
1fff
2ddd
3zzz
TestXXX
TestXXX
Test XXX
Mike
Charly
sed -i'/ Test /'file
答案 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