Linux 中的多行到单行

Multiple lines to single line in Linux

如何在Linux中将下面给定的多行变成单行?

我可以使用 xargs 但是每行的末尾都有一个 space 额外的。

从下面给出的输出中您可以看到 'JAS _Data' 'Exclusiv e' 有一个 space.

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

如何去除每行多余的 space 并使其成为单行?

[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 ~]#

如果您只想在标准输入上读取多行并将它们连接成一行,那么您可以使用 while 循环和 printf:

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

您可以通过管道将任何其他命令的输出传递给它,例如:

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