我通常知道 awk 脚本的输出是用 enter 分隔的。例如下面的脚本:
awk '{print $1}' f.txt
文件 f.txt 的内容如下:
awk bwk cwk
dwk ewk fwk
gwk hwk iwk
然后脚本的输出将如下所示:
awk
dwk
gwk
有什么办法可以得到像这样的输出
awk dwk gwk
?
我通常知道 awk 脚本的输出是用 enter 分隔的。例如下面的脚本:
awk '{print $1}' f.txt
文件 f.txt 的内容如下:
awk bwk cwk
dwk ewk fwk
gwk hwk iwk
然后脚本的输出将如下所示:
awk
dwk
gwk
有什么办法可以得到像这样的输出
awk dwk gwk
?
你可以使用printf
:
awk '{printf $1" "}' f.txt
与awk 中print
的printf
函数不同,它不添加换行符。下面给出了每个字段" "
后printf
所需的空格字符。
你需要这个:
awk '{printf "%s%s",(++n==1?"":" "),$1} END{print ""}' file
或者,如果您愿意:
awk '{printf "%s%s",ofs,$1; ofs=OFS} END{print ""}' file
以避免在行尾添加不需要的空格字符并以换行符结束。
一种方法是操作输出字段分隔符;OFS。
awk 'BEGIN {ORS = " "} {print $1}' f.txt
默认情况下,ORS 是换行符,但这会将其设置为空格。