在每个分号后插入新行

时间:2014-12-19 23:56:06

标签: regex bash awk sed

类似answers是如此复杂,难以置之不理;我将不得不花费数小时学习不必要的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;

我可以使用脚本语言,例如batch,shell或python。

3 个答案:

答案 0 :(得分:4)

这样做:

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

答案 1 :(得分:2)

$ awk -v RS=';' -v ORS=';\n' 'NF' file
stuff;
stuff3;
stuff;
asdf;
fsdf;
asdf;
sfd;

答案 2 :(得分:1)

awk可以做到:

awk '{gsub(/;/,"&\n")}1' file
stuff;
stuff3;
stuff;
asdf;
fsdf;
asdf;
sfd;