如何使用awk将行转换为列?

Sea*_*yen 3 awk

我有一个包含36行的输入,如下所示:

822
526006
1343315205
1.4.2
32
0.000000
13.048815
...
0
0
0
Run Code Online (Sandbox Code Playgroud)

这是memcache stats命令的输出.所以它不是来自文件.如何将这些行转换为单行的列.我不想使用临时文件.

谢谢,

Lev*_*von 9

试试这个:

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)


Igo*_*bin 5

你可以不用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)