Envoyé par
Flodelarab
Bonjour
Ce que décrit Philippe Dpt35 est le réflexe général des informaticiens: toujours mettre les trucs dans une variable. Mais sous Linux, ne dit-on pas que "tout est fichier" ?
De plus, ces transformations ne sont jamais anodines. Évidemment, si on a un fichier d'une seule ligne, c'est transparent. Mais sinon, que deviennent les retours à la ligne ? Et echo, va-t-il interpréter les caractères échappés ? Veut-on toujours les interpréter dans la ligne ?
Perso, je déconseillerais de passer par bash pur si c'est juste pour faire de la modification de fichiers texte,
si ce n'est pas utile. grep/sed/awk conviennent bien.
Je précise que je n'ai utilisé echo que pour le test en ligne de commande.
L'utilisation d'une variable est contraint si on ne travaille pas sur un fichier, mais sur des noms de fichiers que l'on explore par exemple.
1 2 3 4 5
| for fichier in "$repertoire"/*.ext ; do
nom_fichier=$(basename "$fichier")
nombre=$(sed 's/[^[:digit:]]//g' <<< "${nom_fichier}")
.....
done |
Ce qui m'intéressait était de savoir s'il convenait de privilégier les redirections ou les pipes quand on avait le choix, et pourquoi.
Là, en l'occurrence, on pouvait très simplement utiliser du bash pur, comme l'a signalé hizoka.
nombre=${nom_fichier//[^[:digit:]]/}
Partager