Isso não é algo que grep
faz. O nome "grep" em si é um acrônimo para " globalmente pesquisar uma expressão regular e imprimir", que é o que o ed
command g/re/p
faz (para uma determinada expressão regular re
).
ed
é um editor de linha interativa de 1969, mas é mais provável que esteja instalado em seu sistema hoje mesmo assim. Recebemos grep
de ed
e pode ser visto como um atalho ou alias para uma funcionalidade específica de ed
e sed
, que é "stream- ed
", ou seja, um (não interativo editor de fluxo.
Vamos usar sed
:
$ sed -n '1p' file.txt
A string 1p
é um minúsculo sed
"script" que imprime ( p
) a linha correspondente ao endereço fornecido ( 1
, a primeira linha).
O comando de edição 1p
faria (sem surpresa) fazer a mesma coisa no editor ed
.
O -n
suprime a saída de qualquer coisa não explicitamente impressa pelo script, então, tudo que obtemos é a primeira linha do arquivo file.txt
.
Alternativamente:
$ sed '1q' file.txt
Isto imprime todas as linhas do arquivo, mas sai ( q
) na linha 1 (depois de imprimi-lo). Isso é exatamente equivalente a head -n 1 file.txt
.
No padrão POSIX, ele diz (generalizando) que head -n N
é o mesmo que sed 'Nq'
, ou seja, "imprima todas as linhas, mas saia na linha N
". O motivo head
foi incluído no padrão foi devido à simetria com tail
(e compatibilidade com versões anteriores de implementações Unix).