gawk:如何在文件中的单行终端上打印由 gawk 命令生成的多行输出

gawk:如何在文件中的单行终端上打印由 gawk 命令生成的多行输出

我正在使用 gawk 命令打印文件中的列内容,例如:

gawk '{print $2205764, $2205763}' /home/mohasin/fil1.txt

它在终端上生成带有新行的输出:

a a
b b
c c
d d
. .
. .

我想在文件中以单行输出,我该怎么做?

a a b b c c d d......

答案1

将输出记录分隔符 ( ORS) 设置为空格。默认情况下它是换行符。

您可以在BEGIN块中执行此操作:

awk 'BEGIN { ORS = " " } { print }' inputfile

或者,等效地,您可以将其作为命令行参数来执行awk

awk -v ORS=" " '{ print }' inputfile

其中任何一个都会将所有行连接inputfile成一行。 (会有一个尾随空格。)

答案2

使用该tr命令将换行符转换为空格。

gawk '{print $2205764, $2205763}' /home/mohasin/fil1.txt | tr '\n' ' ' > file.txt

相关内容