Ich muss ein Shell-Skript schreiben, um Zeichen in einer Datei in Kleinbuchstaben umzuwandeln und Nicht-Alpha-Zeichen durch _ zu ersetzen .
Ich habe einen separaten Befehl für die beiden oben genannten. Wie man eine Datei als Argument angibt und die oben genannten Dinge erledigt, d.h. die Ausgabe enthält nur Kleinbuchstaben und Nicht-Alpha wird durch _ ersetzt (Unterstrich)?
Akzeptierte Antwort:
Mit sed :
sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
Das sind eigentlich zwei sed Befehle getrennt durch ; :
-
s/[^[:alpha:]]/_/gwandelt jedes nicht-alphabetische Zeichen in einen_um -
s/[[:upper:]]/\L&/gwandelt alle Großbuchstaben in Kleinbuchstaben um
Beispiel:
$ cat file.txt
fooBAr132323
SpamEgg
$ sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
foobar______
spamegg