我搜索了一下,但没有找到针对这种特定情况的解决方案。给定一个输出任意数量的非空行组的管道,这些非空行组分隔成单个空行,是否有一个 sed 单行代码(或 awk 单行代码或 perl 单行代码)将非空行组组合成单行,同时保留空白行?例如,输入
one
two
three
four
five
six
seven
eight
应输出为
one two
three four five
six
seven eight
预先感谢所有回复的人。
这可能对你有用(GNU sed):
sed '/./{:a;N;s/\n\(.\)/ \1/;ta}' file
如果该行不为空,则读取以下行,如果该行不为空,则用空格替换换行符并重复,否则打印模式空格。如果该行首先是空的,则打印空行:这适用于空的第一行,如果不是这种情况,则非空行之间只有一个空行:
sed ':a;N;s/\n\(.\)/ \1/;ta' file
就足够了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)