string - 如何使用 sed/awk 连接连续的非空行?

标签 string awk sed concatenation lines

如何使用 sed 或 awk 将连续的非空行连接成一行? 给出了我正在尝试做的事情的示例。

输入:

aaa ff gg
bbb eee eee
ss gg dd

aaa ff gg
bbb eee eee
ss gg dd

aaa ff gg
bbb eee eee
ss gg dd

转换为

aaa ff gg bbb eee eee ss gg dd

aaa ff gg bbb eee eee ss gg dd

aaa ff gg bbb eee eee ss gg dd

最佳答案

不确定您是否真的想要在每个数据行之间留一个空行,所以这里有两个:

$ awk -v RS= '{$1=$1}1' file
aaa ff gg bbb eee eee ss gg dd
aaa ff gg bbb eee eee ss gg dd
aaa ff gg bbb eee eee ss gg dd

$ awk -v RS= -v ORS='\n\n' '{$1=$1}1' file
aaa ff gg bbb eee eee ss gg dd

aaa ff gg bbb eee eee ss gg dd

aaa ff gg bbb eee eee ss gg dd

关于string - 如何使用 sed/awk 连接连续的非空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43280650/

相关文章:

javascript - 如何在javascript中将字符串值转换为变量?

用于删除重复行的 Bash 脚本,仅当它重复前一行时

linux - bash 和 awk 脚本以 YYYY-MM-DD 格式获取上个月的日期

mysql - awk 从 csv 创建批量 MySQL 插入

regex - 从日志文件中删除日期

Python,从子列表中删除所有数字

python - 将字符串拆分为连续的计数?

python - 仅当列中的特定值是唯一的时,如何替换它?

mysql - 如何使用 bash 文本处理命令将一个字符的单词元素转换为两个字符的单词元素?

linux - find + sed 未按预期工作