unix - régulière - script awk




Utiliser awk pour parcourir la liste des fichiers? (3)

Je ne suis pas familier avec awk , mais je cherche un moyen de parcourir tous les fichiers dans un répertoire et d'exécuter une simple commande awk . Ma commande est une substitution simple qui remplace tous les onglets par deux espaces.

awk '{gsub("\t","  ");print}'

Comment cela peut-il être étendu à la boucle dans un répertoire et exécuter la commande sur tous les fichiers?


utilisez find et redirigez la sortie vers awk:

find . -type f | xargs awk '{gsub("\t"," ");print}'

vous pouvez le faire avec une commande awk

awk -F"\t" '{$1=$1;print $0 >FILENAME}' OFS=" " file

Passez les fichiers à awk sur la ligne de commande bien sûr: `

$ awk 'program' *

Mais il est probablement plus facile à utiliser

$ perl -pe 's/\t/  /g' *

Ou, si vous préférez avoir une modification inplace, simplement:

$ perl -i.orig -pe 's/\t/  /g' *




awk