これはAppleプラットフォーム用です。私の最終目標は、Firefox設定ファイル「prefs.js」内の行を検索して置換し、更新をオフにすることです。ユーザーテンプレートを含め、Mac上のすべてのアカウントでこれを実行できるようにしたいと思います(例には含まれていません)。これまでのところ、これでprefs.jsファイルを持つすべてのパスのリストを取得することができました:
find /Users -name prefs.js
次に、古い設定と新しい設定を変数に入れます。
oldPref='user_pref("app.update.enabled", false);'
newPref='user_pref("app.update.enabled", true);'
次に、sedコマンドを使用して「forループ」を作成し、古い設定を新しい設定に置き換えます。
for prefs in `find /Users -name prefs.js`
do
sed "s/$oldPref/$newPref/g" "$prefs"
done
私が遭遇している問題は、「find」コマンドがパス名に次のような愚かな「ApplicationSupport」を含むフルパスを返すことです。
/Users/admin/Library/Application Support/Firefox/Profiles/437cwg3d.default/prefs.js
コマンドを実行すると、次のエラーが発生します。
sed: /Users/admin/Library/Application: No such file or directory
sed: Support/Firefox/Profiles/437cwg3d.default/prefs.js: No such file or directory
「sed」コマンドが正しく解析するために、出力されたパスを引用符で囲むために「find」コマンドを取得する必要があると思いますか?私は正しい道を進んでいますか?引用符をラップするためにfindコマンドをsedにパイプしようとしましたが、正しく機能するものを取得できません。これを別の方法で行う必要があるかどうかを教えてください。ありがとうございました。