Como uso o Ternary Operator no awk para gravar em um arquivo?

4

Como o título diz, qual é a sintaxe do Ternary no comando awk para gravar um arquivo quando a condição é vista?

Abaixo, estou tentando, mas obtendo erro de sintaxe para determinadas entradas!

Dados da amostra de entrada infile.txt :

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

O comando:

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

Eu posso usar if/else , mas quero saber o mesmo com a possibilidade de sintaxe Ternary e talvez onde estou usando o redirecionamento > errado?

awk -F',' '{if ($1==$2) print >"success.txt";else print >"failed.txt"}' infile.txt
    
por αғsнιη 29.07.2017 / 19:49

1 resposta

10

Faça o operador ternário escolher apenas o arquivo, não o redirecionamento:

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

Tags