我最近在这里问了同样的问题,但我有一些不同的问题。前任:
输入文件
******************
.WER
+ aaa bbb ccc
+ ddd eee
******************
.SDF
+ zzz xxx yyy
+ iii
+ kkk lll
******************
.XCV
+ uuu vvv ggg
+ hhh qqq
******************
期望的输出:
******************
.WER aaa bbb ccc ddd eee
******************
.SDF zzz xxx yyy iii kkk lll
******************
.XCV uuu vvv ggg hhh qqq
******************
所以按照上面我有文件,其中没有行是不确定的。可以是 2,3 或 4,每条记录用 ****************** 分隔是否可以将每条记录的所有行转换为单行?对于我已成功使用的确切行数paste -s -d ' \n'
。
http://sed.sourceforge.net/sed1line.txt有一个类似的例子。
:a
创建标签“a”$!N
将下一行(和换行符)附加到模式空间,如果它不是最后一行($!)s/ *\n+ / /
用单个空格替换尾随空格、换行符、+ 和后面的空格ta
跳回到标签 aP
冲洗图案空间。这将产生双重输出,因为我们没有使用-n
- 选项来 sed,所以现在,我们需要D
删除多余的输出。如果您真的想使用 awk,那么至少使用 GNU awk 您可以执行类似的操作
它只是设置适当的记录和字段分隔符,并强制使用默认(单个空格)字段分隔符重新组装记录。