複数のファイルで '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`に渡すことができます。