首页 > 解决方案 > 如何在unix中将多行合并为单行?

问题描述

我的文本文件是这样的: -

<first_load_time>29-09-2020</first_load_time>
<sql_id>qqkbwi76786</sql_id>

<first_load_time>01-01-2020</first_load_time>
<sql_id>abcdef12345</sql_id>

期望的输出:-

以下格式的文本文件

<first_load_time>29-09-2020</first_load_time><sql_id>qqkbwi76786</sql_id
<first_load_time>01-01-2020</first_load_time><sql_id>abcdef12345</sql_id>

笔记:-

  1. 输入文本文件的前两个块之间有一个空行。空行分隔文本文件中的文本块,在输出文件中,我需要将每个文本块放在一行中。

标签: unix

解决方案


给定您在某个文件中的输入,例如 input.txt,您可以^$在 sed 中找到任何空行(在正则表达式中,表示开始后紧跟行尾)并删除它们(使用 d),然后发送到输出文件,例如 putput.txt:

sed '/^$/ d' < input.txt > output.txt

推荐阅读