Suponha que eu tenha um arquivo de texto chamado output.txt
que contém 1,46 milhão de linhas de dados.
Eu quero pesquisar um texto 27QL
no arquivo.
Se o texto existir, o Linux deve retornar o número da linha.
Como eu posso fazer isso?
Posso usar grep
? Se sim, como?
O
grep
utilitário tem uma opção padrão,-n
, que fará com que ele anexe sua saída comum com o número da linha quegrep
corresponde ao padrão. O número da linha será delimitado do conteúdo da linha por dois pontos.Aqui, também usei a
-w
opção não padrão para pesquisar apenas palavras completas, o que significa que não corresponderemos127QL
ou27QLA
. Com-F
, você dizgrep
que seu padrão é uma string e não uma expressão regular.Para remover os dados reais da saída (ou seja, extrair apenas os números de linha), passe a saída por
cut
:Você também pode usar
sed
:o switch
-n
para o sed silent a ação de impressão padrão e com=
login/pattern/=
ele imprimirá apenas o número da linha do padrão fosco.ou mesmo usando
awk
, uma ferramenta de processamento de texto mais poderosa sobre ogrep
/sed
:NR
em awk representam o Número de Registro .