sedを使用して正確な単語を変更したい

sedを使用して正確な単語を変更したい

"私の目標は、ファイルに次の単語が表示されたときに二重引用符を追加することです。

VGHIER_TSV_WB798
CBVGHIER_TSV_WB798

ここ

sed -i 's/"VGHIER_TSV_WB798"./VGHIER_TSV_WB798./g'

二重引用符がある場合は、削除に使用されます。

sed -i 's/VGHIER_TSV_WB798./"VGHIER_TSV_WB798"./g'

引用文を追加しましたが、引用文を受け取ったときに問題CBVGHIER_TSV_WB798はに変わったということです CB"VGHIER_TSV_WB798"。 2番目の単語を置き換えるために別々のsedステートメントを使用したくありません。

sed -i 's/CBVGHIER_TSV_WB798./"CBVGHIER_TSV_WB798"./g'

上記の要件を達成する方法をお手伝いできますか?

ベストアンサー1

EREをサポートしている場合は、一致するパターンのオプション部分としてsed追加できます。CBこれは、次の両方を置き換えます。

sed -E 's/(CB)?VGHIER_etc/"\1VGHIER_etc"/g'  test

または、単語の始まりと終わりでandをsedサポートしている場合は、次を使用してください。\<\>

sed 's/\<VGHIER_etc\>/"VGHIER_etc"/g'  test

また、パターンに末尾の点がある場合は、.すべての文字と一致し、文字列の一部に置き換えられます。交換したポイントは元のポイントに戻ります。にs/foo./"foo"./変更food"foo".

おすすめ記事