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