Chcete-li rozdělit řetězec pomocí oddělovače pomocí GNU sed, řeknete:
sed 's/delimiter/\n/g' # GNU sed
Například pro rozdělení pomocí :
jako oddělovač:
$ sed 's/:/\n/g' <<< "he:llo:you"
he
llo
you
Nebo s ne-GNU sed:
$ sed $'s/:/\\\n/g' <<< "he:llo:you"
he
llo
you
V tomto konkrétním případě jste přehlédli g
po střídání. Proto se to dělá jen jednou. Viz:
$ echo "string1:string2:string3:string4:string5" | sed s/:/\\n/g
string1
string2
string3
string4
string5
g
znamená g
lobální a znamená, že substituce musí být provedena globálně, to znamená pro jakýkoli výskyt. Podívejte se, že výchozí hodnota je 1 a pokud zadáte například 2, provede se to 2krát atd.
Dohromady byste ve vašem případě museli použít:
sed 's/:/\\n/g' ~/Desktop/myfile.txt
Všimněte si, že můžete přímo použít sed ... file
syntaxe, místo zbytečného potrubí:cat file | sed
.
Pomocí \n
v sed
je nepřenosný. Přenosný způsob, jak s sed
dělat, co chcete je:
sed 's/:/\
/g' ~/Desktop/myfile.txt
ale ve skutečnosti to není práce pro sed
každopádně je to úloha tr
byl vytvořen za účelem:
tr ':' '
' < ~/Desktop/myfile.txt