我想使用“sed”插入换行符(一行变成数百行)

我想使用“sed”插入换行符(一行变成数百行)

我想要 sed 相当于这行 vim:

:s/","/",^M"/g

目标:获取包含大量 json 块的行,并将其分解为单独的行。

我想要使​​用的一个例子是 http://www.cartoonnetwork.com/video/teen-titans-go/episodes/index.html(查找函数 getFullEpisodes())。

我尝试过的:

519  sed -e 's/","/",\n"/g' < /tmp/url > /tmp/line-url

-- 不起作用,只需将“n”放在适当的位置即可。

521  sed -e 's/","/",\\n"/g' < /tmp/url > /tmp/line-url

-- 不起作用,在适当的位置放一个反斜杠,后跟 n。

我想将 vim 命令的完整“脚本”转换为 shell 脚本:

:s/","/",^M"/g
:1,$!grep seo
:g,^.*/vid,s,,http://www.cartoonnetwork.com/vid
:g/"},{.*/s///
:$s,"}];,,
:wn

答案1

看来您的版本sed不理解\ns/// 的 RHS。

您始终可以在bash命令行上执行此操作:

sed -e 's/","/",\
"/g' < /tmp/url > /tmp/line-url

csh命令行上,您需要加倍反斜杠。请注意,尾部反斜杠后面不应跟除硬换行符之外的任何内容。

相关内容