Ho bisogno di scrivere uno script di shell per convertire i caratteri in un file in minuscolo e sostituire i caratteri non alfa in _
.
Ho un comando separato per entrambi i precedenti. Come fornire un file come argomento e fare le cose precedenti, ovvero l'output avrà solo caratteri minuscoli e non alfa verrà sostituito con _
(sottolineatura)?
Risposta accettata:
Usando sed
:
sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
Si tratta in realtà di due sed
comandi separati da ;
:
-
s/[^[:alpha:]]/_/g
trasforma ogni carattere non alfabetico in un_
-
s/[[:upper:]]/\L&/g
converte tutti i caratteri maiuscoli in minuscoli
Esempio:
$ cat file.txt
fooBAr132323
SpamEgg
$ sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
foobar______
spamegg