Используйте sed, чтобы добавить строку текста в файл настроек Firefox в OS X - PullRequest
1 голос
/ 16 сентября 2011

Мне нужно запретить обновлению Firefox 750 компьютеров Mac, но сохранить индивидуальные предпочтения. Поэтому я должен вставить строку в файл.

Используя сценарий оболочки с sed, я пытаюсь определить строку, которой нужно следовать, так как в ней есть специальные символы:

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);

Мне нужно вставить строку кода, предварительно упомянутую в команде sed, в качестве новой строки после первого экземпляра «user_pref», чтобы доллар и \ n достигли этого, если я прав.

Похоже, код верный и должен работать, но не работает. Я использую оболочку bash на ОС 10.6.8.

1 Ответ

0 голосов
/ 21 сентября 2011

ОК, я исправил это сам.Глупая опечатка:

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 запрашивать обновления у пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...