Como pesquisar a palavra após a linha específica no arquivo no linux?

1

Eu tenho um arquivo com 100 linhas e eu tenho que procurar a palavra feliz, mas a busca deve começar depois da linha 50 do arquivo. Qual é o comando exato do grep usado no linux?

    
por surbhi 17.03.2015 / 11:42

4 respostas

3

Você também pode usar head + grep e agrupar os comandos com {...} para compartilhar a mesma entrada:

{ head -n 50 >/dev/null; grep PATTERN; } <infile

Dessa forma, head obtém apenas as primeiras n linhas, as copia para /dev/null e as linhas restantes são processadas por grep .

    
por 17.03.2015 / 21:25
2

Aqui está uma maneira sed de ir da 50ª linha até o final do arquivo e usar grep para pesquisar o padrão:

sed -n '50,$p' file.txt | grep "happy"

Ou apenas usando sed para fazer isso:

sed -n '50,$s/happy/&/p' file.txt

Aqui estão mais alguns sed ways (Graças a 'Stéphane Chazelas'):

sed '50,$!d;/happy/!d' file.txt
sed -n '50,${/happy/p;}' file.txt
    
por 17.03.2015 / 11:55
2

Use tail para obter o conteúdo do arquivo da linha 51 em diante e, em seguida, grep . Use -i para ignorar maiúsculas e minúsculas (assim você também combina "Feliz", "FELIZ", etc) e um espaço antes para corresponder apenas a "feliz" e não a quaisquer outras palavras que contenham essa sequência de letras.

tail -n +51 filename.txt | grep -i " happy"
    
por 17.03.2015 / 11:48
0

Você precisará de awk :

awk 'NR>50' filename.txt | grep '\bhappy\b'
    
por 17.03.2015 / 11:51

Tags