処理しようとしている CSV がありますが、一部のフィールドにコンマ、改行、スペースが含まれており、考えてみると、そこにもアポストロフィが含まれている可能性があります。
コンマと改行については、出力段階でそれらを他の文字列に変換し、最後に変換し直しました (はい、面倒ですが、これを実行する必要があるのは 1 回だけです)。スペースもありますが、問題を基本的な部分に分解して、回避できるかどうかを確認しました
ここにinput.csvがあります
"john","beatles.com","arse","fool@wonka.com","1","1","on holiday"
"paul","beatles.com","bung","","0","1","also on holiday"
(私は引用符の有無にかかわらず試しました)
ここにスクリプトがあります
INPUT="input.csv"
for i in `cat ${INPUT}`
do
#USERNAME=`echo $i | awk -v FS=',' '{print $1}'`
USERNAME=`echo $i | awk 'BEGIN{FS="[|,:]"} ; {print $1}'`
echo "username: $USERNAME"
done
ジョンとポールを入力するだけでいいのですが、代わりに
username: "john"
username: holiday"
username: "paul"
username: on
username: holiday"
スペースを認識し、それらを新しい行として解釈するためです。
それを止めさせることはできますか?