1

我有两个 awk 脚本可以在 Linux 中运行。每一个的输出都在一行中。如何将两个输出分成两行?

例如:

awk '{printf $1}' f.txt >> a.txt
awk '{printf $3}' f.txt >> a.txt

第一个脚本的输出是:

35 56 40 28 57

第二个输出是:

29 48 73 26

如果我一个接一个地运行它们,输出将变为:

35 56 40 28 57 29 48 73 26

有什么办法可以得到结果:

35 56 40 28 57
29 48 73 26

谢谢!~

4

1 回答 1

2

虽然我不明白您如何设法以您的方式获取字段之间的空格,但您可以END在第一个脚本中添加一条语句:

awk '{printf $1} END{print "\n"}'

您也可以使用单个 awk 命令执行此操作:

awk -v ORS=" " 'BEGIN{ARGV[ARGC++] = ARGV[1]; i = 1 } 
                NR!=FNR && FNR==1 { printf "\n"; i=3 } 
                { print $i } 
                END { printf "\n" }' f.txt
于 2013-08-09T00:24:22.033 回答