Python 将n行追加到前一行中的某个字符

Python 将n行追加到前一行中的某个字符,python,linux,bash,Python,Linux,Bash,输入: 等等 期望输出: [5 8 15 79 5 6 . . . n 8 6 4 5 ] [18 78 18 79 5 6 . . . n 8 6 78 ] 我需要将到]的所有列转换为一行,并一直转换到文件末尾。听起来您只想在当前行以]结尾时打印换行符。尝试: 对于sed: awk '{printf "%s%s", $0, match($0,"]\\s*$") ? "\n" : ""}' input 解释: :要跳转到的标签 N将下一行追加到模式sa

输入:

等等

期望输出:

[5 8 15 79 5 6  
.  
.  
.   
n 8 6 4 5 ]  
[18 78 18 79 5 6  
.  
.  
.   
n 8 6 78 ]

我需要将到]的所有列转换为一行,并一直转换到文件末尾。

听起来您只想在当前行以]结尾时打印换行符。尝试:

对于sed:

awk '{printf "%s%s", $0, match($0,"]\\s*$") ? "\n" : ""}' input
解释:

:要跳转到的标签 N将下一行追加到模式sapce /\]/! ba(如果没有),跳转到标签 s/\n//g仅当]在模式空间中时才删除所有换行符 如果要确保]是行中的最后一个非空字符,而不仅仅是行中的任何位置,则可以将正则表达式从/\]/更改为/\][[:blank:]*$/,从而导致

$ sed ':a;N;/\]/!ba;s/\n//g' infile
[5 8 15 79 5 6  .  .  .   n 8 6 4 5 ]
[18 78 18 79 5 6  .  .  .   n 8 6 78 ]

输入究竟是什么,是数组还是一些文件内容,literal?perl-pe'chomp if!/]/'测试?它应该是一个数组,但是我的代码的输出按照我在这里显示的方式给了我结果,所以我得到的数据不是一行而是六列。
$ sed ':a;N;/\]/!ba;s/\n//g' infile
[5 8 15 79 5 6  .  .  .   n 8 6 4 5 ]
[18 78 18 79 5 6  .  .  .   n 8 6 78 ]
sed ':a;N;/\][[:blank:]]*$/!ba;s/\n//g' infile