Isso não é algo que grep
faz. O nome "grep" em si é um acrônimo para " pesquisar globalmente uma expressão regular e imprimir", que é o que o ed
comando g/re/p
faz (para uma determinada expressão regular re
).
ed
é um editor de linhas interativo de 1969, mas provavelmente está instalado no seu sistema hoje em dia. Temos grep
a partir de ed
, e pode ser vista como um atalho ou aliás para uma funcionalidade específica ed
, e sed
, o que é "stream- ed
", isto é, uma (não interactivo) editor de fluxo.
Vamos usar sed
:
$ sed -n '1p' file.txt
A 1p
string é um pequeno sed
"script" que imprime ( p
) a linha correspondente ao endereço fornecido ( 1
, a primeira linha). O comando de edição 1p
(sem surpresa) faria a mesma coisa no ed
editor a propósito.
Ele -n
suprime a saída de qualquer coisa que não seja explicitamente impressa pelo script, então tudo o que obtemos é a primeira linha do arquivo file.txt
.
Alternativamente:
$ sed '1q' file.txt
Isso imprime todas as linhas do arquivo, mas sai ( q
) na linha 1 (após a impressão). Isso é exatamente equivalente a head -n 1 file.txt
.
No padrão POSIX, diz (generalizando) que head -n N
é praticamente o mesmo que sed 'Nq'
, por exemplo , "imprime todas as linhas, mas sai na linha N
". O motivo head
foi incluído no padrão devido à simetria tail
(e compatibilidade retroativa com implementações existentes do Unix).
head -1 file.txt
não funciona?