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:]]/_/g
transforme chaque caractère non alphabétique en un_
-
s/[[:upper:]]/\L&/g
convertit 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