单独输出带有“空格”而不是“回车”的awk脚本

单独输出带有“空格”而不是“回车”的awk脚本,awk,Awk,我知道通常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函数不添加换行符。以下printf在每个字段后提供所需的间距字符。您可以使用printf执行此操作: 与打印不同,

我知道通常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函数不添加换行符。以下printf在每个字段后提供所需的间距字符。

您可以使用printf执行此操作:


与打印不同,awk中的printf函数不添加换行符。下面的printf在每个字段后提供所需的间距字符。

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

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

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

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

awk 'BEGIN {ORS = " "} {print $1}' f.txt
默认情况下,ORS是换行符,但这会将其设置为空格

您需要这个:

awk '{printf "%s%s",(++n==1?"":" "),$1} END{print ""}' file
或者,如果您愿意:

awk '{printf "%s%s",ofs,$1; ofs=OFS} END{print ""}' file
要避免在行尾添加不需要的空格字符,并以换行结束。

您需要:

awk '{printf "%s%s",(++n==1?"":" "),$1} END{print ""}' file
或者,如果您愿意:

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

为了避免在行尾添加不需要的空格字符并以换行符终止。

也可以使用awk-v ORS='{print$1}'f.txt进行设置。另外,awk'{print$1}'ORS=f.txt也可以使用awk-v ORS='{print$1}'f.txt进行设置。另外,awk'{print$1}'ORS=f.txt通常,使用awk'{printf%s,$1}可能更安全'f.txt,因为如果列包含%s之类的内容,您可能没有足够的参数来满足格式字符串错误一般来说,使用awk'{printf%s,$1}'f.txt可能更安全,因为如果列包含%s之类的内容,您可能没有足够的参数来满足格式字符串错误