web-dev-qa-db-ja.com

複数行のストリームを1行に折りたたむ

多数の行を含むファイルがあり、各行にはスペースで区切られた一連の数字が含まれています。このデータをパイプで何らかの方法で処理してから、複数の行をスペースで区切られたすべての数値の1行にまとめたいと思います。

これを行うために使用できる標準のコマンドラインユーティリティはありますか?ほとんどの行ごとのユーティリティは改行を混乱させないようです...

7
JeremyKun

そのため、このために行ごとのユーティリティを使用しません。

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

行ごとのユーティリティでさえ、すべての改行を削除できます。

sed:

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

awk:

awk '{printf $0" "}' file

しかし、@ Ignacio Vazquez-Abramsが書いたように、trを使用する方がはるかに優れています。

3
rush

出力を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.
1
ken