我有一个包含36行的输入,如下所示:
822
526006
1343315205
1.4.2
32
0.000000
13.048815
...
0
0
0
Run Code Online (Sandbox Code Playgroud)
这是memcache stats命令的输出.所以它不是来自文件.如何将这些行转换为单行的列.我不想使用临时文件.
谢谢,
试试这个:
awk '{printf("%s ", $0)}'
Run Code Online (Sandbox Code Playgroud)
使用管道:
whatever_your_command | awk '{printf("%s ", $0)}'
Run Code Online (Sandbox Code Playgroud)
使用的优点printf()是它可以让您完全控制数据的输出格式/间距/等.
-
测试
822
526006
1343315205
1.4.2
32
0.000000
13.048815
Run Code Online (Sandbox Code Playgroud)
文件中的数据data.txt:
awk '{printf("%s ", $0)}' data.txt
Run Code Online (Sandbox Code Playgroud)
收益率:
822 526006 1343315205 1.4.2 32 0.000000 13.048815
Run Code Online (Sandbox Code Playgroud)
你可以不用awk这样做:
tr '\n' ' ' < file
echo $(<file)
xargs echo < file
perl -pe 's/\n/ /' < file
Run Code Online (Sandbox Code Playgroud)
例:
$ tr '\n' ' ' < data.txt
822 526006 1343315205 1.4.2 32 0.000000 13.048815
$ echo $(<data.txt)
822 526006 1343315205 1.4.2 32 0.000000 13.048815
$ xargs echo < data.txt
822 526006 1343315205 1.4.2 32 0.000000 13.048815
$ perl -pe 's/\n/ /' < data.txt
822 526006 1343315205 1.4.2 32 0.000000 13.048815
Run Code Online (Sandbox Code Playgroud)