Je dois mettre en place un script UNIX de surveillance de fichiers dépassant un seuil de 5 Mo à leur arrivée dans un répertoire UNIX.
Seul problème, dans la boucle for de mon script, cela plante car certains noms de fichiers importés dans l'application comportent des espaces.
Bref quand je fais un ls -lrt |awk '$5>=5000000 {print $9}', les noms de fichiers sont éclatés par les espaces et considérés ensuite comme des arguments différents du for.
Pour éviter cela, j'ai voulu remplacer temporairement les espaces contenus dans les noms de fichiers par des underscores.
Malgré tous mes tests, je ne m'en sors pas avec la fonction gsub de AWK.
J'ai tenté ceci -> ls -lrt |awk '$5>=5000000 {gsub(/ /, "_", $9); print $9}'
En vain, le résultat de la commande est identique à celle sans le gsub.
Pour info, je code sur un shell ksh en AIX 5.3.
Comment dois-je gérer mon gsub ? Existe-t-il d'autres solutions plus simples pour contourner mon problème qui bloque pour l'instant le bon traitement de ma boucle for ?
Merci d'avance pour votre aide.
Partager