如何在 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")}'

相关内容