Use apenas as opções -v
(correspondência de inversão) e -E
(extensão regexp estendida) do grep:
$ grep -vE "Schedule:|Something Level:" filename
Eu tenho um comando que gera um monte de dados, mas eu só quero duas linhas. O grep não funciona porque as linhas que eu quero não estão próximas umas das outras. Eu não consigo descobrir sed ...
Ajuda por favor. :)
Exemplo de saída:
Schedule:
blabla:
blabla:
blabla:
blabla:
blabla:
blabla:
Something Level:
blabla:
blabla:
blabla:
Eu quero estas linhas:
Schedule:
Something Level:
Essa saída é repetida pelos diferentes servidores e a saída não é a mesma. Então eu preciso procurar um padrão de duas coisas várias vezes.
Use apenas as opções -v
(correspondência de inversão) e -E
(extensão regexp estendida) do grep:
$ grep -vE "Schedule:|Something Level:" filename
Qualquer um deles funcionará, escolha seu favorito
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"'
Tem que ter cuidado ao combinar o espaço em branco no último.