Como você deseja apenas três colunas, faça isso com:
awk -F, '{
if($2=="" && $3==$2 && $3==$4){
printf "%s,",$1;
system("CMD")
}
else{print}
}' test.csv
Eu tenho um arquivo csv com esta aparência:
site1.com,aaa,bbb,ccc
site2.com,qqq
site3.com,rrr,uuu,ppp
site4.com,ddd,sss
site5.com,www,rrr,yyy,uuu
site6.com,,,,ttt,,,,
site7.com,,,uuuu,,,,ppp,
site8.com,,,,ggg,zzz
Eu quero substituir linhas (linhas) onde as colunas de enésimo a quarto (2ª a 4ª) estão vazias. e eu quero manipular as linhas, executando um comando sobre elas. Por exemplo, com awk:
awk -F, '$n-$m=="" {printf "%s,",$1 ; system(cmd1) ;}else {print $0}' test.csv
awk -F, '$2-$4=="" {printf "%s,",$1 ; system(cmd1) ;}else {print $0}' test.csv
Eu, então, quero exportar da seguinte maneira (output1 é resultado do comando cmd1):
site1.com,aaa,bbb,ccc
site2.com,qqq
site3.com,rrr,uuu,ppp
site4.com,ddd,sss
site5.com,www,rrr,yyy,uuu
site6.com,output1
site7.com,,,uuuu,,,,ppp,
site8.com,output1
Tags text-processing awk