awkで三項演算子を使用してファイルに書き込む方法は?

awkで三項演算子を使用してファイルに書き込む方法は?

awk条件が確認されたときにファイルに書き込むコマンドの三項構文は何ですか?

以下で試しましたが、与えられた入力に対して構文エラーが発生しました!

サンプルデータ入力infile.txt:

1,1,c
0,3,b
0,0,a
1,5,z
1,5,y
5,5,x

注文する:

awk -F',' '{print (($1==$2)?>"success.txt": >"failed.txt")}' infile.txt
awk: {print (($1==$2)?>"success.txt": >"failed.txt")}
awk:                  ^ syntax error
awk: {print (($1==$2)?>"success.txt": >"failed.txt")}
awk:                                                ^ syntax error

使用できますが、if/else三項構文の可能性について知りたいです。たぶんリダイレクトを>間違って使用しているのでしょうか?

awk -F',' '{if ($1==$2) print >"success.txt";else print >"failed.txt"}' infile.txt

ベストアンサー1

三項演算子がリダイレクトではなくファイルのみを選択するようにします。

awk -F',' '{print >(($1==$2)?"success.txt": "failed.txt")}'

おすすめ記事