ダブルコーテーションの中のカンマを取り除く。
$ cat tmp 1,2,3,"abc,efg",5 1,2,3,"abc,efg",5 1,2,3,"abc,efg",5 1,2,3,"abc,efg",5
$ sed "s/\"\(.*\),\(.*\)\"/\"\1\2\"/g" tmp 1,2,3,"abcefg",5 1,2,3,"abcefg",5 1,2,3,"abcefg",5 1,2,3,"abcefg",5
解説:
sedは置換コマンド。
\"は「ダブルコーテーション」は
エスケープする必要があるので、
\でエスケープする。
.*は任意の一文字以上の文字列を 表す正規表現
\".*,.*\"で、ダブルコーテーション で囲まれた,を含む任意の文字列を 表す正規表現。
\(と\)で囲んだ正規表現は \1,\2,...と後で再利用できる。
後半で、選ばれた文字列を再利用することを考えて、.*を\(と\)で囲む と \"\(.*\),\(.*\)\" となる。
\1はカンマの前の文字列、 \2はカンマの後ろの文字列に 対応する。