2016-03-17 75 views
4

我想編寫一個腳本,它將刪除一行代碼,如果它已存在於js文件中。我很好奇這是否可能。當腳本運行時,我希望它檢查是否存在user_pref("plugin.disable_full_page_plugin_for_types", "application/pdf");,如果存在,則將其刪除。這存在幾乎100%的時間。所以我很想知道它是否可行,或者有一個命令將它刪除(如果存在)。使用腳本從JS文件中刪除文本

cd /D "%APPDATA%\Mozilla\Firefox\Profiles\*.default" 
echo user_pref("browser.cache.check_doc_frequency", 1);>>prefs.js 
if (user_pref("plugin.disable_full_page_plugin_for_types", "application/pdf"); !== undefined) { 

} 

我想catch是js文件已經存在,所以它不像我可以將它設置爲一個變量,然後將該變量設置爲無。

不知道這是可能的任何幫助將不勝感激!

+0

我不知道如果這可以幫助你:http://stackoverflow.com/questions/35378308/script-to-remove-text-from-js-files – Lotus91

+0

只是爲了正確理解這個問題,你正試圖編寫一個bash腳本去除一個特定的行,如果它存在於一個文件中? – PostCrafter

+0

是的,firefox自動具有'user_pref(「plugin.disable_full_page_plugin_for_types」,「application/pdf」);'在那裏pref.js,我想寫一個腳本,以刪除該行代碼在該js文件 –

回答

2

如果您只想從文件中刪除包含特定內容的行,則可以使用grep

# Outputs into prefs.js.new all lines from prefs.js that do not include the string 
grep -v 'user_pref("plugin.disable_full_page_plugin_for_types", "application/pdf")' <prefs.js> prefs.js.new 
mv prefs.js.new prefs.js 

你可以使其更快通過尋找'^user_pref(...告訴grep查找每行開頭的模式,所以它會較早跳過不匹配的行。

如果您在Windows上(從cd /D "%APPDATA%...開始),那麼您可以使用FIND。我想你想使用/v反轉匹配:

FIND /v 'user_pref("...")' <prefs.js> prefs.js.new 

您可能需要玩的引號來得到它的工作。的

0

也許不是刪除原來的(順便說一句這不建議使用Mozilla),你會過得更好覆蓋使用自定義的首選項文件的選項:user.js的

https://developer.mozilla.org/en-US/docs/Mozilla/Preferences/A_brief_guide_to_Mozilla_preferences

在配置文件目錄是兩個用戶pref文件:prefs.js和 user.js. prefs.js由應用程序自動生成, 不應該手動編輯,而user.js是可選文件, 用戶可以創建以覆蓋其他 首選項文件初始化的首選項。

所以,我寧願與此內容創建user.js的文件:

user_pref("plugin.disable_full_page_plugin_for_types", ""); 

在我的(窗口)的情況下,配置文件路徑是:

C:\Users\{username}\AppData\Roaming\Mozilla\Firefox\Profiles\{profilename}