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:]]/_/gtrasforma ogni carattere non alfabetico in un_ -
s/[[:upper:]]/\L&/gconverte tutti i caratteri maiuscoli in minuscoli
Esempio:
$ cat file.txt
fooBAr132323
SpamEgg
$ sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
foobar______
spamegg