![gawk:如何在文件中的单行终端上打印由 gawk 命令生成的多行输出](https://linux22.com/image/78306/gawk%EF%BC%9A%E5%A6%82%E4%BD%95%E5%9C%A8%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E5%8D%95%E8%A1%8C%E7%BB%88%E7%AB%AF%E4%B8%8A%E6%89%93%E5%8D%B0%E7%94%B1%20gawk%20%E5%91%BD%E4%BB%A4%E7%94%9F%E6%88%90%E7%9A%84%E5%A4%9A%E8%A1%8C%E8%BE%93%E5%87%BA.png)
我正在使用 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