1

Linux で実行する 2 つの awk スクリプトがあります。それぞれの出力は 1 行です。2 つの出力を 2 行に分けるにはどうすればよいですか?

例えば:

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

最初のスクリプトの出力は次のとおりです。

35 56 40 28 57

2 番目の出力は次のとおりです。

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 に答える