Назад | Перейти на главную страницу

Я хочу отфильтровать две строки из вывода программы

У меня есть команда, которая выводит кучу данных, но мне нужны только две строки. Grep не работает, потому что строки, которые мне нужны, не находятся рядом друг с другом. Кажется, я не могу понять sed ...

Помогите, пожалуйста. :)

Пример вывода:

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

Мне нужны эти строки:

Schedule:
   Something Level:

Этот вывод повторяется через разные серверы, и результат не тот. Поэтому мне нужно снова и снова искать образец из двух вещей.

Любой из них будет работать, выберите свой любимый

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"'

Будьте осторожны, сопоставляя пробелы на последнем.

Просто используйте grep -v (инвертировать совпадение) и -E (Расширенное регулярное выражение) параметры:

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