2016-03-17 41 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}