我需要阻止750 Mac更新Firefox,但保留个人偏好。 因此,我必须在文件中插入一行。
使用带有sed的shell脚本,我正在努力识别要遵循的行,因为它有特殊的字符:
sed '/user_pref("accessibility.typeaheadfind.flashbar", 0); /a\
user_pref("app.update.enabled", false);\'$'\n' /Users/username/pathToFile/prefs.js
显然现在这是打印到屏幕,但稍后将写入文件。任何帮助表示赞赏。
源文件如下:
# Mozilla User Preferences
/* Do not edit this file.
*
* If you make changes to this file while the application is running,
* the changes will be overwritten when the application exits.
*
* To make a manual change to preferences, you can visit the URL about:config
* For more information, see http://www.mozilla.org/unix/customizing.html#prefs
*/
user_pref("accessibility.typeaheadfind.flashBar", 0);
user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1298297884);
user_pref("app.update.lastUpdateTime.background-update-timer", 1298282703);
我需要在“user_pref”的第一个实例之后插入sed命令中前面提到的代码行作为新行,所以如果我是对的话,美元和\ n实现了这一点。
看起来代码是正确的,它应该可以工作,但不是。我在OS 10.6.8上使用bash shell。
答案 0 :(得分:0)
sed '/user_pref("accessibility.typeaheadfind.flashbar", 0);/ a\
将上述内容与原始帖子进行比较,最后您会注意到在分号后需要正斜杠。
对于那些感兴趣的人,我实际上已经确定了:
useris=$(who | grep -v support | awk '{print $1}' | awk "NR==1{print;exit}")
firefoxPath=$(grep "Path=" /Users/"$useris"/Library/Application\ Support/Firefox/profiles.ini | awk -F '=' '{print $2}')
sed '/^user_pref("app.update.lastUpdateTime/ i\
user_pref("app.update.enabled", false);\'$'\n' /Users/"$useris"/Library/Application\ Support/Firefox/"$firefoxPath"/prefs.js > /Users/"$useris"/Library/Application\ Support/Firefox/"$firefoxPath"/prefs.txt
然后,您将使用您生成的新文件替换“prefs.js”文件,现在您已设法阻止Firefox浏览器提示用户进行更新。