Aby podzielić ciąg z separatora z sed mówisz:
sed 's/delimiter/\n/g'
Na przykład, aby podzielić stosując :
jako ogranicznik:
$ sed 's/:/\n/g' <<< "he:llo:you"
he
llo
you
W tym konkretnym przypadku, brakowało g
po zmianie. Dlatego jest to zrobione tylko raz. Zobacz:
$ echo "string1:string2:string3:string4:string5" | sed s/:/\\n/g
string1
string2
string3
string4
string5
g
oznacza g
skroniowe i oznacza, że zastępowanie ma być wykonane na całym świecie, czyli dla każdego wystąpienia. Zobacz, że domyślnie jest 1 i jeśli umieścisz na przykład 2, odbywa się 2 razy itd
Wszyscy razem, w twoim przypadku trzeba by użyć:
sed 's/:/\\n/g' ~/Desktop/myfile.txt
Zauważ, że można bezpośrednio użyj składni sed ... file
, zamiast niepotrzebnych przewodów: cat file | sed
.
globalną flagę? /sol? – Jiminion
Możesz rozważyć użycie 'tr: '\ n' <~/Desktop/myfile.txt'. Ponieważ 'sed' może otwierać pliki całkiem szczęśliwie, nie musisz używać' cat' w twoim przykładzie z pytania. –