Eu tenho alguns arquivos em um diretório. E quero adicionar algumas linhas no topo e no final do arquivo usando awk
.
Exemplo: Meu comando awk
:
awk 'BEGIN { print "line1\nline2" } { print $0 } END { print "line3\nline4" }' file |tee file
Usando o comando acima, posso adicionar line1
& line2
no topo & line3
, line4
no final de file
Agora quero fazer a mesma ação para todos os arquivos existentes no diretório atual.
Se eu usar:
awk 'BEGIN { print "line1\nline2" } { print $0 } END { print "line3\nline4" }' *
Então eu recebo a saída na tela do terminal, mas eu não posso redirecionar para (ou substituir) todos os arquivos .
Então, tentei seguir (Para find
+ awk
):
find -type f -exec awk 'BEGIN { print "line1\nline2" } { print $0 } END { print "line3\nline4" }' '{}' \;
Usando o comando acima eu posso imprimir a saída na tela e, portanto, para sobrescrever arquivos ,
Eu tentei seguir (Para find
+ awk
+ sobrescrever com tee
), mas está recebendo erro:
$ find -type f -exec awk 'BEGIN { print "line1\nline2" } { print $0 } END { print "line3\nline4" }' '{}' | tee '{}' \;
find: missing argument to '-exec'
Assim, como posso usar awk
para substituir (ou seja: com |tee
ou outra coisa) para todos os arquivos em diretório atual por comando?