列出仅包含空格的文件的第3列

时间:2014-08-05 19:20:50

标签: awk sed gawk

列出我正在使用的第3列

awk '{print $3}' inputfile.txt

,其输出看起来像

abc
xyz
lmn
pqr

但我需要输出

abc xyz lmn pqr

我怎么能得到这个?

5 个答案:

答案 0 :(得分:2)

这可能适合你(GNU sed):

sed -r 's/((\S*)\s){3}.*/\2/;1h;1!H;$!d;x;y/\n/ /' file

或更容易:

cut -d\  -f3 file | paste -sd\ 

答案 1 :(得分:1)

音译换行到空格

... | tr '\n' ' '

答案 2 :(得分:1)

使用awk Output Record Separator变量。

awk -v ORS=' ' '{print $3}' inputfile.txt

答案 3 :(得分:1)

print将始终附加换行符(实际上,它将使用ORS值)。如果您想要更多控制权,可以使用printf

awk '{printf "%s ", $3}'

这也将在最后打印一个额外的空格字符,但对于大多数用例,这个额外的空间是无害的。

答案 4 :(得分:1)

避免在行的开头或结尾添加空格:

awk '{printf "%s%s", fs, $3; fs=FS} END{print ""}' file