OS X で '​​find' コマンドを使用して 'sed' を使用するとエラーが発生します:「無効なコマンド コードです。」 質問する

OS X で '​​find' コマンドを使用して 'sed' を使用するとエラーが発生します:「無効なコマンド コードです。」 質問する

現在のクライアントに CVS を使用するよう強制されており、リモート リポジトリのアドレスが変更されています。ローカル コードでリモート アドレスを変更する唯一の方法は、再帰的な検索と置換です。

ただし、sed コマンドでは動作するはずです:

find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \;

すべてのファイルでエラーが発生します:

sed: 1: ".//file/path ...": invalid command code .

sed の一致/置換でピリオドをエスケープしようとしましたが、何も解決されません。

ベストアンサー1

OS X を使用している場合、これはおそらく sed コマンドとは関係ありません。 の OSX バージョンではsed-iオプションは引数を期待するextensionため、コマンドは実際にはextension引数として解析され、ファイル パスはコマンド コードとして解釈されます。

引数を明示的に追加し-e''引数として指定してみてください-i:

find ./ -type f -exec sed -i '' -e "s/192.168.20.1/new.domain.com/" {} \;

見るこれ

おすすめ記事