gpt4 book ai didi

sed合并由空行分隔的N个文本行?

转载 作者:行者123 更新时间:2023-12-01 07:09:32 24 4
gpt4 key购买 nike

我搜索了一下,但没有找到针对这种特定情况的解决方案。给定一个管道,它输出一组任意数量的非空行分隔的单个空行,是否有一个 sed one-liner(或 awk one-liner 或 perl one-liner)将非空行组组合成单行,同时保留空行?例如,输入

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

就足够了。

关于sed合并由空行分隔的N个文本行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39734125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com