cat todas as linhas do arquivo, que são depois de “KEYWORD” [duplicado]

12

Eu tenho um arquivo, com uma "KEYWORD" no número de linha n. Como posso imprimir todas as linhas a partir da linha n + 1 até o final?

Por exemplo, aqui eu mentiria para pro = int apenas linhas DDD e EEE

AAA
BBB
CCC
KEYWORD
DDD
EEE
    
por user1968963 23.06.2013 / 10:20

3 respostas

19

Você pode fazer isso com sed :

sed '1,/^KEYWORD$/d'

Isso excluirá (omitirá) todas as linhas do começo do fluxo até "KEYWORD", inclusive.

    
por 23.06.2013 / 10:29
2

Uma alternativa pode ser grep em combinação com o sinal -A , por exemplo

grep -A10000 KEYWORD file

Em que 10000 é apenas um grande número para indicar a quantidade de linhas até o final do arquivo, o que, para seu uso diário prático, deve ser suficiente.

Caso contrário, você poderia usar a quantidade de linhas no arquivo como parâmetro como este

grep -A$(wc -l file | cut -d' ' -f1) KEYWORD file

Mas isso é provavelmente um exagero (e não é mais fácil de lembrar do que a alternativa sed dada)

    
por 23.06.2013 / 11:52
2

Use sed, imprimindo da correspondência KEYWORD até o final do arquivo e, em seguida, usando tail para remover a linha KEYWORD.

sed -n '/KEYWORD/,$p' file | tail -1
    
por 23.06.2013 / 10:31

Tags