Primeiro, cd
para o diretório pai desejado.
Em seguida, use o comando find
para executar o comando awk
:
find -type f -exec awk '{if (NF>4){print $1, $2, $3 , "0" } else {print $0}}' {} +
Explicação
- já é recursivo por padrão, portanto, isso será executado para todos os subdiretórios
-
-type f
limitará a localização def
iles, em vez de arquivos e diretórios - a sintaxe
-exec somecommand {} +
executa um comando e coloca os caminhos de arquivo encontrados onde você escreve{}
- a opção
+
foi considerada mais eficiente porque só executa uma instância deawk
enquanto coloca os resultados da pesquisa como argumentos em{}
, enquanto a outra forma de executá-la (não mostrada aqui) seria executada awk uma vez por cada nome de arquivo e é considerado menos eficiente