com sed
:
$ sed -e '1i\
Description of the following table:
' <file
Description of the following table:
TABLE1
1234
9555
87676
2344
Arquivo:
TABLE1
1234
9555
87676
2344
Resultado esperado:
Description of the following table:
TABLE1
1234
9555
87676
2344
Na verdade, echo
e cat
são suficientes para fazer o que você deseja:
echo "Description of the following table:" | cat - file
O argumento -
informa cat
para ler stdin
.
printf "%s\n" 1 i "Description of the following table:" . w | ed filename
Os comandos printf
outputs ed
(um por linha) que são canalizados para ed filename
.
ed
edita o arquivo conforme as instruções:
1 # go to line 1
i # enter insert mode
Description of the following table: # text to insert
. # end insert mode
w # write file to disk
BTW, ed
executa uma edição real no local, não grava-a-arquivo-temp-e-move como sed
e a maioria das outras ferramentas de edição de texto. O arquivo editado mantém o mesmo inode no sistema de arquivos.
A opção awk seria:
gawk '
BEGIN{print "Description of the following table:"}
{print $0}' file > temp && mv temp file
Um pouco mais de trabalho do que sed aqui, porque o sed tem uma opção de edição no local -i pela qual você poderia gravar diretamente no arquivo.
Tags text-processing awk sed