我想从程序的输出中过滤掉两行

我想从程序的输出中过滤掉两行

我有一个命令可以输出一堆数据,但我只想要两行。Grep 不起作用,因为我想要的行不相邻。我似乎无法弄清楚 sed...

请帮助。 :)

示例输出:

Schedule:
   blabla:
   blabla:
   blabla:
   blabla:   
   blabla:
   blabla:
   Something Level:
   blabla:   
   blabla:
   blabla:

我想要这些行:

Schedule:
   Something Level:

这个输出在不同的服务器上重复,并且输出并不相同。所以我需要反复搜索两个事物的模式。

答案1

只需使用 grep 的-v(反转匹配)和-E(扩展正则表达式)选项:

$ grep -vE "Schedule:|Something Level:" filename

答案2

这些都可以,选择你最喜欢的

grep 'Schedule:\|Something Level:'
grep -E 'Schedule:|Something Level:'

sed '/Schedule:\|Something Level:/!d'
sed -r '/Schedule:|Something Level:/!d'

sed -n '/Schedule:\|Something Level:/p'
sed -rn '/Schedule:|Something Level:/p'

awk '/Schedule:/ || /Something Level:/'
awk -F: '$1 == "Schedule" || $1 == "   Something Level"'

必须小心匹配最后一个的空格。

相关内容