sedは、1文字が欠落している単語を完全な単語に置き換えます。

sedは、1文字が欠落している単語を完全な単語に置き換えます。

名前を含める必要があるファイルが多すぎます。

Jacqueline

ただし、代わりに次の内容が含まれています。

Jacquelin

しかし時々

fooJacquelinbarまたは

123Jacquelin123または

/Jacquelin/

同様に終了せずにJacquelinすべてのインスタンスをどのように変更できますか?JacquelineJacquelinee

私が試したことは次のとおりです。

find . -name '*' -type f -exec sed -i 's/\bJacquelin\b/Jacqueline/g' {} +

"Jacquelin"ただし、これはインスタンスを追加された項目(単語全体と一致しない)に置き換えません。

答え1

また試み

sed  's/\(Jacquelin\)e\?/\1e/g' file

または

sed -r 's/(Jacquelin)e?/\1e/g' file

答え2

否定的な予測を利用するには、Perlを使用することをお勧めします。

perl -pe 's/Jacquelin(?!e)/Jacqueline/g'

Jacquelin文字がすぐに続かない場合e(後に文字がない場合を含む)は置き換えられます。

ファイルを一括編集するには、-iフラグを追加するだけです。

find . -name '*' -type f -exec perl -pi -e 's/Jacquelin(?!e)/Jacqueline/g' {} +

ジョブは元に戻せませんので、事前にバックアップしておいてください。

関連情報