За да разделите низ с разделител с GNU sed, казвате:
sed 's/delimiter/\n/g' # GNU sed
Например, за да разделите с помощта на :
като разделител:
$ sed 's/:/\n/g' <<< "he:llo:you"
he
llo
you
Или с не-GNU sed:
$ sed $'s/:/\\\n/g' <<< "he:llo:you"
he
llo
you
В този конкретен случай сте пропуснали g
след замяната. Следователно, това се прави само веднъж. Вижте:
$ echo "string1:string2:string3:string4:string5" | sed s/:/\\n/g
string1
string2
string3
string4
string5
g
означава g
lobal и означава, че заместването трябва да се извърши глобално, тоест за всяко събитие. Виж, че по подразбиране е 1 и ако сложиш примерно 2 се прави 2 пъти и т.н.
Всички заедно, във вашия случай ще трябва да използвате:
sed 's/:/\\n/g' ~/Desktop/myfile.txt
Имайте предвид, че можете директно да използвате синтаксиса sed ... file
, вместо ненужни канали: cat file | sed
.
person
fedorqui 'SO stop harming'
schedule
14.08.2013
tr : '\n' <~/Desktop/myfile.txt
. Тъй катоsed
може да отваря файлове доста щастливо, не е необходимо да използватеcat
във вашия пример от въпроса. - person Jonathan Leffler   schedule 14.08.2013