这是针对苹果平台的。我的最终目标是查找并替换 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
我遇到的问题是“查找”命令返回完整路径,路径名中带有愚蠢的“应用程序支持”,如下所示:
/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
我假设我需要以某种方式获取“find”命令以将输出路径用引号括起来,以便“sed”命令正确解析它?我在正确的道路上吗?我试图将 find 命令通过管道传递到 sed 以换行引号,但我无法让任何东西正常工作。请让我知道我是否应该以不同的方式处理这个问题。谢谢你。