Com awk
, para um arquivo com qualquer número de linhas:
$ awk -v last=$(wc -l < input) 'NR!=1 && NR!=last { print $0 " and more stuff" } NR==1||NR==last { print }' input
header
foo and more stuff
bar and more stuff
baz and more stuff
quux and more stuff
freeble and more stuff
bletch and more stuff
footer
Obtenha o número de linhas no arquivo de entrada com wc
, armazene isso em uma variável awk
. Em seguida, imprima o cabeçalho e o rodapé sozinhos e todas as outras linhas com o sufixo:
NR!=1 && NR!=last {
print $0 " and more stuff"
}
NR==1 || NR==last {
print
}