我有以下文件内容。

2013-07-30 debug
line1
2013-07-30 info
line2
line3
2013-07-30 debug
line4
line5

我想用 sed 获得以下输出。

2013-07-30 info
line2
line3

这个命令给了我几乎我想要的输出

sed -n '/info/I,/[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/{p}' myfile.txt

2013-07-30 info
line2
line3
2013-07-30 debug

我如何省略这里的最后一行?

最佳答案

尝试:

sed -n '/info/I p; //,/[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/{ //! p}' myfile.txt

它打印第一个匹配项,并且在范围内省(introspection)略两个边缘,但第一个已经打印,所以只跳过第二个。它产生:
2013-07-30 info
line2
line3

关于bash - 用 sed 省略最后一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17951506/

10-13 09:25