Linux中有多行到单行

时间:2015-02-28 04:12:39

标签: bash awk sed scripting xargs

如何在Linux中将以下给定的多行添加到一行?

我可以使用xargs,但每行的结尾都有一个空格。

从下面给出的输出中你可以看到'JAS _Data''Exclusiv e'有空格。

Thu Feb 19 10:42:50: Submitted from host <iitmlogin5-ib0>, CWD <$HOME/Bipin/JAS _Data/Big_Domain/128np_IC/Normal_queue>, Output File <file .stdout.159375>, Error File <file.stderr.159375>, Exclusiv e Execution, 128 Task(s), Requested Resources <span[ptile= 16]>; RUNLIMIT

如何删除每一行的额外空格并使其成为一行?

[root@iitmlogin3 ~]# `bjobs -l 159375 | sed -n '/Submitted/,/RUNLIMIT/p' | xargs`
Thu Feb 19 10:42:50: Submitted from host <iitmlogin5-ib0>, CWD <$HOME/Bipin/JAS _Data/Big_Domain/128np_IC/Normal_queue>, Output File <file .stdout.159375>, Error File <file.stderr.159375>, Exclusiv e Execution, 128 Task(s), Requested Resources <span[ptile= 16]>; RUNLIMIT
[root@iitmlogin3 ~]#

1 个答案:

答案 0 :(得分:2)

如果您要做的只是在标准输入上读取多行并将它们连接到一行,那么您可以使用while循环printf

while read line; do printf "$line"; done

您可以输出您拥有的任何其他命令的输出,例如:

bjobs -l 159375 | sed -n '/Submitted/,/RUNLIMIT/p' | while read line; do printf "$line"; done