22

さまざまな条件に応じて、awkを使用してさまざまな出力ファイルにさまざまな行を印刷したい

awk '{if($2>10) print > outfile1; else print > outfile2}' infile

しかし、このスクリプトはそれを変更する方法では機能しませんか?ありがとう!>

4

5 に答える 5

24

ファイル名は二重引用符で囲む必要があります。

awk '{if($2>10) {print > "outfile1"} else {print > "outfile2"}}' infile
于 2012-10-25T21:34:28.977 に答える
8

これを試してみてください:

awk '{if($2>10) print > "outfile1"; else print > "outfile2"}' infile

を省略"すると、(おそらく存在しない)変数にリダイレクトされます。私の場合、ファイルにリダイレクトします。

于 2012-10-25T21:33:44.083 に答える
4
awk '{print > "outfile" ($2>10 ? 1 : 2)}' infile
于 2012-10-25T22:05:30.377 に答える
0

代わりに、2回だけ調べることができます。

cat infile | awk '{if($2>10) print}' > outfile; cat infile | awk '{if($2<=10) print}' > outfile2
于 2012-10-25T21:33:34.763 に答える
0

宛先ファイル名を二重引用符で囲んでください。これで準備完了です。

于 2012-10-25T21:35:28.320 に答える