3行のテキストを一度に1行で表示するには?

3行のテキストを一度に1行で表示するには?

一度に3行のデータを表示するログファイルがあります。このように:

1 data   
2 data   
3 data   
1 data   
2 data   
3 data   
1 data   
2 data   
3 data

次のように1行に3行ずつ表示したいと思います。

1 data 2 data 3 data  
1 data 2 data 3 data  
1 data 2 data 3 data

私はこのファイルをキャプチャし、それを実行するコマンドを介して転送できるようにしたいです。私はsedまたはawkが解決策だと思います。

答え1

以下を使用できますpaste

$ paste - - - <data.txt
1 data      2 data      3 data   
1 data      2 data      3 data   
1 data      2 data      3 data

答え2

1つの方法は次のとおりです。

$ perl -pe 's/\n/ / unless $. % 3 == 0' file 
1 data    2 data    3 data   
1 data    2 data    3 data   
1 data    2 data    3 data

答え3

あるいは、sed2行を「N」に削除してから、結果バッファ内の改行を抑制することもできます。

sed 'N;N;s/\n/ /g'

関連情報