次のような36行の入力が含まれています:
822
526006
1343315205
1.4.2
32
0.000000
13.048815
...
0
0
0
これは memcache stats コマンドからの出力です。したがって、ファイルからではありません。これらの行を単一行の列に変換するにはどうすればよいですか。一時ファイルを使用したくありません。
ありがとう、
次のような36行の入力が含まれています:
822
526006
1343315205
1.4.2
32
0.000000
13.048815
...
0
0
0
これは memcache stats コマンドからの出力です。したがって、ファイルからではありません。これらの行を単一行の列に変換するにはどうすればよいですか。一時ファイルを使用したくありません。
ありがとう、
これを試して:
awk '{printf("%s ", $0)}'
パイプを使用する:
whatever_your_command | awk '{printf("%s ", $0)}'
を使用する利点はprintf()
、データの出力形式/間隔などを完全に制御できることです。
--
テスト
822
526006
1343315205
1.4.2
32
0.000000
13.048815
ファイル内のデータdata.txt
:
awk '{printf("%s ", $0)}' data.txt
収量:
822 526006 1343315205 1.4.2 32 0.000000 13.048815
anuj@test:~$ cat num
1
2
3
4
5
anuj@test:~$ cat num |xargs
1 2 3 4 5
anuj@test:~$
cat と xargs で十分だと思います
1文字のawk
プログラムでも構いません
seq 10 | awk -v ORS=" " 1
使用するsed
input | sed ':a;N;{s/\n/ /};ba'
bashでは、このようなものを使用できます。
input="822
526006
1343315205
1.4.2
32
0.000000
13.048815"
次に、単純な for ループを使用します。
for row in $(echo "$input");do echo -en "$row ";done;echo
出力
822 526006 1343315205 1.4.2 32 0.000000 13.048815
最後のエコーは、プロンプトが同じ行に表示されないようにするためのものであることに注意してください。これをスクリプトで使用する場合は、適宜削除してください。