Acrescentando valor a uma coluna com base na condição

0

Eu tenho um arquivo csv file.csv .

Action,Type,Name,Destination
Add,File,File1.war,path
Add,File,File2.properties,path
Add,Directory,File3.war,path

Eu dei este arquivo como uma entrada para um loop while e ele verifica toda e qualquer linha a presença de arquivo no local de origem e destino, e se as condições forem verdadeiras, então eu preciso retornar o valor para uma nova coluna Comentários e adicionar os comentários dizendo se é sucesso ou falhar.

while IFS="," read f1 f2 f3 f4
do
statements
done < file.csv.

Eu quero acrescentar um valor na quinta coluna com base na saída de cada linha. A saída que eu preciso é um pouco semelhante a esta

Action,Type,Name,Destination,Remarks
Add,File,File1.war,path,Success
Add,File,File2.properties,path,Fail
Add,Directory,File3.war,path,Fail
    
por Arvind 08.03.2017 / 10:16

1 resposta

1

Alguma solução em awk com base nas poucas informações que você nos deu com alguma verificação sem sentido ( NR % 2 → número da linha mesmo) a ser substituída por você:

awk 'BEGIN {OFS=FS=","} {print $0,(NR % 2 ? "True": "False")}' << 'EOF'
1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4
EOF

Use $1 , $2 etc. dentro do script awk para se referir às colunas e basear suas verificações:

Saída:

1,2,3,4,True
1,2,3,4,False
1,2,3,4,True
1,2,3,4,False

Não há suporte para vírgulas com escape (por exemplo, \, ou usando aspas).

    
por 08.03.2017 / 11:19

Tags