sedを使用して単一の'を置き換える方法は?

sedを使用して単一の'を置き換える方法は?

複数のファイルで '30 を '30 に置き換える必要があります。以下は機能しません:

grep -Rl "'30"  /myDir | xargs  sed -i "s/'30/`30/g"

どうすれば解決できますか?

私はFedora 26マシンを使用しています。

答え1

バックティックの前にバックスラッシュを追加するだけです。

grep -Rl "'30" /myDir | xargs  sed  "s/'30/\`30/g"

答え2

find /myDir -maxdepth 1 -type f -exec grep -q \'30 {} \; -exec sed -i -e y/\'/\`/ {} +

ここでは、findディレクトリ内のファイルをフィルタリングし、/myDir文字列を取得'30してヒープ内の対応するファイルだけをsed, which'll do an in-place editing-i`に渡すことができます。

関連情報