2番目の引用符が間違っています:
sed -e 's/\(".*\),\(.*"\)/\1 \2/g'
さらに、正規表現を使用すると、テキストの可能な限り長い部分と一致する傾向があります。つまり、文字列に複数の引用フィールドがある場合、これは機能しません。
sedで複数の引用フィールドを処理する方法
sed -e 's/\(\"[^",]\+\),\([^",]*\)/\1 \2/g' -e 's/\"//g'
これはこれを解決する方法でもありますが、引用されたフィールドごとに複数のコンマを含む可能性がある入力では、sedの最初の式は単一フィールドの最大コンマコンテンツと同じ回数、またはそれまで繰り返される必要があります出力をまったく変更しません。
複数の式でsedを実行すると、複数のsedプロセスが実行され、オープンパイプですべて実行される「tr」よりも効率的です。
ただし、入力が適切にフォーマットされていない場合、これは望ましくない結果になる可能性があります。すなわち、ネストされた引用符、終了していない引用符。
実行例を使用して:
echo '123,"ABC, DEV 23",345,534,"some more, comma-separated, words",202,NAME' \
| sed -e 's/\(\"[^",]\+\),\([^",]*\)/\1 \2/g' \
-e 's/\(\"[^",]\+\),\([^",]*\)/\1 \2/g' -e 's/\"//g'
出力:
123,ABC DEV 23,345,534,some more comma-separated words,202,NAME