1

我通常知道 awk 脚本的输出是用 enter 分隔的。例如下面的脚本:

awk '{print $1}' f.txt

文件 f.txt 的内容如下:

awk bwk cwk
dwk ewk fwk
gwk hwk iwk

然后脚本的输出将如下所示:

awk
dwk
gwk

有什么办法可以得到像这样的输出

awk dwk gwk

?

4

3 回答 3

2

你可以使用printf

awk '{printf $1" "}' f.txt

与awk 中printprintf函数不同,它不添加换行符。下面给出了每个字段" "printf所需的空格字符。

于 2013-08-08T23:06:59.187 回答
1

你需要这个:

awk '{printf "%s%s",(++n==1?"":" "),$1} END{print ""}' file

或者,如果您愿意:

awk '{printf "%s%s",ofs,$1; ofs=OFS} END{print ""}' file

以避免在行尾添加不需要的空格字符并以换行符结束。

于 2013-08-09T13:33:17.470 回答
1

一种方法是操作输出字段分隔符;OFS。

awk 'BEGIN {ORS = " "} {print $1}' f.txt

默认情况下,ORS 是换行符,但这会将其设置为空格。

于 2013-08-09T07:10:56.180 回答