ファイルの1行にある文字の検索と置換

ファイルの1行にある文字の検索と置換

私のLinuxコンピュータにファイルがあります。

1234 | 456 |"abc | xyz"|  fid|

|その間にあるwhichをカンマに変更したいと思います。" "abcとxyzの間にはパイプのみがあります。この行は同様の行を含むファイルの一部ですが、「」の中には1つしかありません。誰でも助けることができますか?

ベストアンサー1

echo '1234 | 456 |"abc | xyz"| fid|' | \
sed 's/\([^|]*|[^|]*|[^|]*\)|/\1,/'

これを作ります。

1234 | 456 |"abc , xyz"| fid|

このsedラインは、パイプ以外のもの、パイプ、パイプ以外のもの、パイプ、パイプ以外のものを見つける方法で動作します。これ逆参照から除外された関心パイプです。すべてを逆参照に変更し、最後のパイプをコンマに置き換えます。残りの行は変更されません。

おすすめ記事