Potřebuji napsat skript shellu pro převod znaků v souboru na malá písmena a nahradit znaky, které nejsou alfa, na _
.
Mám samostatný příkaz pro oba výše uvedené. Jak zadat soubor jako argument a provést výše uvedené věci, tj. výstup bude mít pouze malá písmena a znaky jiné než alfa budou nahrazeny _
(podtržítko)?
Přijatá odpověď:
Pomocí sed
:
sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
Toto jsou ve skutečnosti dva sed
příkazy oddělené ;
:
-
s/[^[:alpha:]]/_/g
převede každý neabecední znak na_
-
s/[[:upper:]]/\L&/g
převede všechna velká písmena na malá
Příklad:
$ cat file.txt
fooBAr132323
SpamEgg
$ sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
foobar______
spamegg