将多行流折叠为一行

将多行流折叠为一行

我有一个包含大量行的文件,每行都包含一堆用空格分隔的数字。我以某种方式在管道中处理这些数据,然后我想将多行折叠成由空格分隔的所有数字组成的一行。

是否有一个标准的命令行实用程序可以用来执行此操作?似乎大多数逐行实用程序都不会弄乱换行符......

答案1

这就是为什么您不为此使用逐行实用程序的原因。

$ tr '\n' ' ' < input.txt > output.txt

答案2

即使逐行实用程序也可以删除所有换行符。

sed:

sed ':a;N;$!ba;s/\n/ /g' file

awk:

awk '{printf $0" "}' file

但使用 更好tr,就像@Ignacio Vazquez-Abrams 写的那样。

答案3

将输出通过管道传输到xargs

#!/bin/sh -x
while
do
date > temp
ping cp1za >> temp
cat temp | xargs echo
done
Tue Dec 17 18:23:31 UTC 2013 CS V1R12: Pinging host CP1ZA.TMMNA.TMM.TOYOTA.C (150.45.12.22) Ping #1 response took 0.001 seconds.

相关内容