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
如何在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