次のCSVファイルがあります。
site1.com,aaa,bbb,ccc
site2.com,qqq
site3.com,rrr,uuu,ppp
site4.com
site5.com,ddd,sss
行(行)を空の4番目の列に変更したいと思います。私はコマンドを実行してこの行を操作したいと思います。たとえば、次のようにしますawk
。
awk -F, '$4=="" {system("$1,cmd1 $1")}' test.csv
次に、次のようにエクスポートしたいと思います(output1はcmd1コマンドの出力です)。
site1.com,aaa,bbb,ccc
site2.com,output1
site3.com,rrr,uuu,ppp
site4.com,output1
site5.com,output1
ベストアンサー1
awk -F, -v q=\' '
function shellquote(s) {
gsub(q, q "\\" q q, s)
return q s q
}
$4 == "" {
printf "%s,", $1
system("cmd " shellquote($1))
next
}
{print}'
このshellquote
部分が重要です。たとえば、$1
値が似ている場合を考えてみましょう。;reboot