Macで次のコマンドを使用しています。
$find . -name “*.java” -exec sed -i ’s/foo/bar/g’ {} \;
効果がないようです。
ディレクトリに.javaで終わる2つのファイルがあり、どちらにもfooテキストが含まれています。何か不足していますか?
編集:コメントのリクエストの結果
[aafghani-03:~/test amirafghani]$ find . -name "*.java" -exec sed -i 's/foo/bar/g' {} \;
sed: 1: "./bar.java": invalid command code .
sed: 1: "./foo.java": invalid command code .
実際、それは少なくとも私にとっては解決します。二重引用符と単一引用符の両方
—
レフ
"
を'
、それぞれとで置き換える必要があります。
スマート(?)引用符!.. :)
—
Peter.O
貼り付けたのは、まさに私が実行していたものです。誰かが回答を投稿できますか?
—
アミールアフガニ
次回質問をするときに表示されるエラーメッセージを投稿してください。みんなの時間を節約できます。
—
ミケル
-exec
それ以降をすべて削除するとどうなりますか?Javaファイルの名前を印刷しますか?(ASCII引用符の代わりにスマート引用符を使用しているのではないかと心配しています。)