Primeiro, seu comando:
echo -e "% First Line\n% "$(date)"\n\n$(cat file1.txt)">file1.txt
Isso não é altamente recomendado. Se o arquivo contiver alguma barra invertida, você estará com problemas. Por favor, leia sobre cotação e substituição de comandos.
Para um único arquivo, a maneira POSIX recomendada para inserir linhas no início do arquivo é:
printf '%s\n' 0a 'First line' '2nd line; 3rd line is empty' '' . x | ex file.txt
0a
significa "acrescentar depois da linha 0." É um comando para ex
, o editor de arquivos POSIX (e outra forma do editor vi
, aliás). O .
em uma linha, por si só, finaliza o acréscimo. x
salva e sai.
Para fazer vários arquivos de uma vez, use um loop for
e um arquivo glob:
for f in *.txt; do
printf '%s\n' '# This line heads all files' . x | ex "$f"
done