我正在尝试编写一个脚本,如果它已存在于js文件中,将删除一行代码。我很好奇,如果这是可能的。当脚本运行时,我希望它检查user_pref("plugin.disable_full_page_plugin_for_types", "application/pdf");
是否存在,然后删除它。这几乎占百分之百的时间。因此,我有兴趣了解它是否可行,或者如果它存在则删除命令。
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) {
}
我想抓住的是js文件已经存在,所以它不像我可以将它设置为变量然后将变量设置为空。
不确定是否可以提供任何帮助,我们将不胜感激!
答案 0 :(得分: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
您可能需要使用引号来使其正常工作。
答案 1 :(得分:0)
也许不是删除原始文件(Mozilla不推荐使用btw),最好使用自定义首选项文件覆盖该选项: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", "");
在我的(windows)案例中,个人资料路径为:
C:\Users\{username}\AppData\Roaming\Mozilla\Firefox\Profiles\{profilename}