sedを使用して1行に複数の二重引用符で囲まれた単語の文字を置き換える方法は?

sedを使用して1行に複数の二重引用符で囲まれた単語の文字を置き換える方法は?

このようなテキスト形式を含むテキストファイルがあります。

012345,"[ThinkPadT2/3Gband,Mac]",Lenovo,"iPhone3G,A1241"

sedを使用してパイプ(|)演算子を介して二重引用符内の単語内のコンマのみを置き換える方法。次の出力が必要です。

012345,"[ThinkPadT2/3Gband | Mac]",Lenovo,"iPhone3G|A1241"

ベストアンサー1

これは標準製作手順です。sed 欲はないそして逆参照括弧内の部分文字列のヒント()

sed 's/\(\"[^",]\{1,\}\),\([^",]\{1,\}\"\)/\1 | \2/g'

またはGNUの場合sed

sed -r 's/("[^",]+),([^",]+")/\1 | \2/g'

おすすめ記事