Aqui está meu arquivo de exemplo
user@linux:~$ cat file.txt
Line 1
Line 2
Line 3
Line 4
Line 5
user@linux:~$
Eu posso imprimir a linha 2-4 comgrep -A2 'e 2' file.txt
user@linux:~$ grep -A2 'e 2' file.txt
Line 2
Line 3
Line 4
user@linux:~$
Também posso imprimir o número da linha comgrep -n
user@linux:~$ grep -nA2 'e 2' file.txt
2:Line 2
3-Line 3
4-Line 4
user@linux:~$
Além disso, o mesmo pode ser feito comsed -n 2,4p file.txt
user@linux:~$ sed -n 2,4p file.txt
Line 2
Line 3
Line 4
user@linux:~$
Mas não tenho certeza de como imprimir o número da linha comsed
Seria possível imprimir o número da linha com sed
?
AWK:
Seda dupla :
sed e colar de glen jackmann :
A versão Perl de bart :
gato e sed:
Veja também esta resposta para uma pergunta semelhante.
Um pouco de explicação:
sed -n '2,4p'
esed '2,4!d'
faça a mesma coisa: o primeiro só imprime linhas entre o segundo e o quarto (inclusive), o último "apaga" todas as linhas, exceto aquelas.sed =
imprime o número da linha seguido por uma nova linha . Veja o manual .cat -n
no último exemplo pode ser substituído pornl
ougrep -n ''
.Eu fiz pelos métodos abaixo mencionados 2
Método 1
comando
Método2
resultado
Não é exatamente para isso que
nl
serve?nl
- filtro de numeração de linhaEntão você pode usar qualquer método que desejar para selecionar linhas.
(EDITAR)
Por POSIX ,
nl
numera linhas vazias:Você pode reverter o pipe se quiser apenas contar a saída.