J'ai besoin d'écrire un script shell pour convertir les caractères d'un fichier en minuscules et remplacer les caractères non alpha par _ .
J'ai une commande séparée pour les deux ci-dessus. Comment donner un fichier comme argument et faire les choses ci-dessus, c'est-à-dire que la sortie n'aura que des caractères minuscules et non alpha sera remplacé par _ (trait de soulignement) ?
Réponse acceptée :
Utilisation de sed :
sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
Il s'agit en fait de deux sed commandes séparées par ; :
-
s/[^[:alpha:]]/_/gtransforme chaque caractère non alphabétique en un_ -
s/[[:upper:]]/\L&/gconvertit tous les caractères majuscules en minuscules
Exemple :
$ cat file.txt
fooBAr132323
SpamEgg
$ sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
foobar______
spamegg