2014-12-19 2 views
-3

Аналогичные answers настолько сложны и сложны для intepreret; Мне пришлось бы часами изучать ненужные команды awk, sed и/или RegEx.Вставить новую строку после каждой точки с запятой

Итак, у меня есть очень длинный файл (foo_In.txt), который отформатирован в одной огромной строке, например:

stuff;stuff3;stuff;asdf;fsdf;asdf;sfd; 

Я хотел бы вход foo_In.txt и выходной foo_Out.txt,

stuff; 
stuff3; 
stuff; 
asdf; 
fsdf; 
asdf; 
sfd; 

Я мог бы использовать языки сценариев, такие как пакет, оболочка или питон.

+1

вам нужно; символы? если нет еще более короткого варианта tr ';' '\ n' <файл – tinySandy

ответ

3

Это будет делать:

sed "s/;/;\n/g" foo_In.txt > foo_Out.txt 
+0

Отлично! Именно то, что я искал ... короткое и сладкое. –

+0

Человек, которого ты спас мой бекон, очень благодарен! –

1

awk может это сделать:

awk '{gsub(/;/,"&\n")}1' file 
stuff; 
stuff3; 
stuff; 
asdf; 
fsdf; 
asdf; 
sfd; 
2
$ awk -v RS=';' -v ORS=';\n' 'NF' file 
stuff; 
stuff3; 
stuff; 
asdf; 
fsdf; 
asdf; 
sfd; 
Смежные вопросы