我正在尝试替换换行符,我想要使用sed
(请不要建议其他工具)。要用字符串替换换行符,我正在尝试
sed 's/\n/string/g'
不工作,至少在我的系统上(bash在Ubuntu 12.04上)。但是以下
sed 's/string/\n/g'
会用换行符替换所有出现的string
。
例如,请考虑以下file
hello
there
sed 's/\n/ /g' file
给了我同样的信息:
hello
there
但是sed 's/hello/hello\n/g' file
给了我一个换行符:
hello
there
有些机构可以告诉我为什么sed
能够用<{1}} 写一个新行但不能读吗?
答案 0 :(得分:3)
sed
适用于输入行,你不能替换那样的换行符。您需要将输入行附加到模式空间。
sed ':a;$!N;s/\n/string/;ta' inputfile
会用string
替换换行符。
答案 1 :(得分:0)
sed -n '1h;1!H;$x;s/\n/string/gp' YourFile
其他方法首先加载到缓冲区并在结束时一次更改所有内容并打印结果