Answers:
这是在Linux上将chrome搜索引擎导出为CSV的单个命令:
sqlite3 -csv ~/.config/chromium/Default/Web\ Data 'select short_name,keyword,url from keywords' > ~/search-engines.csv
您需要安装sqlite3。更换~/.config/chrome
如果您使用的是Windows,请为相应的Windows路径。应该是这样的%AppData%\Local\Google\Chrome\User Data
除了导出为CSV之外,您还可以导出为sqlite插入语句:
(printf 'begin transaction;\n'; sqlite3 ~/.config/chromium/Default/Web\ Data 'select short_name,keyword,url,favicon_url from keywords' | awk -F\| '{ printf "insert into keywords (short_name, keyword, url, favicon_url) values ('"'"%s"'"', '"'"%s"'"', '"'"%s"'"', '"'"%s"'"');\n", $1, $2, $3, $4 }'; printf 'end transaction;\n') > ~/search-engine-export.sql
然后复制~/search-engine-export.sql
到另一台计算机上,并使用以下命令导入:
sqlite3 ~/.config/chromium/Default/Web\ Data < search-engine-export.sql
确保Web Data
使用上述机器上的路径替换路径。
function esc(s){gsub("\x27","\x27\x27",s);return s}
$ 1和$ 2的awk 中====> esc($ 1),esc($ 2)
这是一个无需使用任何外部工具或编辑注册表即可导出和导入Chrome搜索引擎设置的简单解决方案:
chrome://settings/searchEngines
)中。要下载具有搜索引擎设置的JSON文件,请执行以下操作:
(function exportSEs() {
/* Auxiliary function to download a file with the exported data */
function downloadData(filename, data) {
const file = new File([data], { type: 'text/json' });
const elem = document.createElement('a');
elem.href = URL.createObjectURL(file);
elem.download = filename;
elem.click();
}
/* Actual search engine export magic */
settings.SearchEnginesBrowserProxyImpl.prototype.getSearchEnginesList()
.then((searchEngines) => {
downloadData('search_engines.json', JSON.stringify(searchEngines.others));
});
}());
要从使用上述脚本创建的JSON文件中导入设置,请执行以下操作:
(async function importSEs() {
/* Auxiliary function to open a file selection dialog */
function selectFileToRead() {
return new Promise((resolve) => {
const input = document.createElement('input');
input.setAttribute('type', 'file');
input.addEventListener('change', (e) => {
resolve(e.target.files[0]);
}, false);
input.click();
});
}
/* Auxiliary function to read data from a file */
function readFile(file) {
return new Promise((resolve) => {
const reader = new FileReader();
reader.addEventListener('load', (e) => {
resolve(e.target.result);
});
reader.readAsText(file);
});
}
const file = await selectFileToRead();
const content = await readFile(file);
const searchEngines = JSON.parse(content);
searchEngines.forEach(({ name, keyword, url }) => {
/* Actual search engine import magic */
chrome.send('searchEngineEditStarted', [-1]);
chrome.send('searchEngineEditCompleted', [name, keyword, url]);
});
}());
笔记
chrome://
URL上执行(在此完成)。可能,但是您不想痛苦就足够了。
在您的Chrome个人资料中找到网络数据文件。在Windows 7中将位于此处:
"%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"
在Ubuntu中使用SQLite程序(如SQLite Studio或sqlite)打开文件(sudo apt-get install sqlite),然后在SQLite Studio中导出关键字表,或在Linux中运行以下命令:
sqlite3 "Web Data" ".dump keywords" > keywords.sql
让您的同事导入关键字,然后执行相反的过程。
就像我说的那样,可能,但是痛苦。
我写了一个Javascript解析器,将SQL从Web数据转换为几乎通用的Netscape书签文件格式如果您有兴趣将关键字引入其他浏览器(如Firefox), HTML形式(这表明该格式的最终标准似乎是Microsoft)。或歌剧。
如果您对替代解决方案感兴趣,我创建了Shortmarks,以允许您在任何浏览器中使用同一组自定义搜索引擎,并且我计划实现与他人共享的功能。我将在完成新功能测试后的几天内发布即将发布的导入代码。
我做了以下分享我的Google Chrome搜索引擎条目的操作,它对我来说效果很好:
Windows XP:转到C:\ Documents and Settings \ MyUserName \ Local Settings \ Application Data \ Google \ Chrome \ User Data \ Default
在WINDOWS 7上:转到C:\ Users \ MyUserName \ AppData \ Local \ Google \ Chrome \ User Data \ Default
复制这3个文件:Preferences
,Web Data
和Web Data-journal
将这3个文件放到目标计算机上
我编写了一个Python脚本,该脚本从JSON数据加载定义。现在,您可以通过代码管理您的配置:
https://gist.github.com/ninowalker/9952bf435f8acffa3ef59d6c538ca165
这是幂等的(例如可以多次运行;不会通过关键字添加重复项)。
与python2和OSX一起使用。可以修改以支持其他平台。
对我来说,我使用的是Windows 10,我想将搜索引擎从我的个人chrome配置文件复制到公司chrome配置文件。我做了以下事情:
我从https://www.sqlite.org/download.html(在“预编译的二进制文件”下,描述为“用于管理SQLite数据库文件的命令行工具包”)下载了SQLite。我将其解压缩到c:\utils
我的路径中
我打开了cmd.exe
我已将目录更改为默认(个人)Chrome配置文件
cd "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default"
我完全退出了Chrome(即使是在托盘中)。另外,请保留这些说明的副本(或在其他浏览器中打开它们),因为您会松开它们。
我执行以下操作:
sqlite3 "Web Data" ".dump keywords" > c:\keywords.sql
我更改为新的配置文件:
cd "..\Profile 2\"
我跑了这个:
sqlite3.exe "Web Data" < c:\keywords.sql
我收到以下错误,可以:
Error: near line 4: UNIQUE constraint failed: keywords.id
Error: near line 5: UNIQUE constraint failed: keywords.id
Error: near line 6: UNIQUE constraint failed: keywords.id
Error: near line 7: UNIQUE constraint failed: keywords.id
Error: near line 8: UNIQUE constraint failed: keywords.id
如果您收到更多错误,则意味着您已将搜索引擎添加到新的配置文件中。删除所有这些,包括刚刚添加的这些新的,然后重新运行此步骤。或手动编辑SQL文件。
这就是我的操作方式(我不记得在哪里找到它了)。
创建一个脚本export_chrome_search_engines.sh
:
#!/bin/sh
DESTINATION=${1:-./keywords.sql}
TEMP_SQL_SCRIPT=/tmp/sync_chrome_sql_script
echo "Exporting Chrome keywords to $DESTINATION..."
cd ~/.config/google-chrome/Default
echo .output $DESTINATION > $TEMP_SQL_SCRIPT
echo .dump keywords >> $TEMP_SQL_SCRIPT
sqlite3 -init $TEMP_SQL_SCRIPT Web\ Data .exit
rm $TEMP_SQL_SCRIPT
创建一个脚本import_chrome_search_engines.sh
:
#!/bin/sh
if ps -x | grep -v grep | grep Google\ Chrome > /dev/null; then
echo "Close Chrome and try again..."
exit 1
fi
SOURCE=${1:-./keywords.sql}
#SOURCE=$1
TEMP_SQL_SCRIPT=/tmp/sync_chrome_sql_script
echo
echo "Importing Chrome keywords from $SOURCE..."
cd ~/.config/google-chrome/Default
echo DROP TABLE IF EXISTS keywords\; > $TEMP_SQL_SCRIPT
echo .read $SOURCE >> $TEMP_SQL_SCRIPT
sqlite3 -init $TEMP_SQL_SCRIPT Web\ Data .exit
rm $TEMP_SQL_SCRIPT
使它们可执行:
chmod +x export_chrome_search_engines.sh import_chrome_search_engines.sh
要导出,请关闭Chrome并运行:
./export_chrome_search_engines.sh
cp ~/.config/google-chrome/Default/keywords.sql /tmp/
要导入,请关闭Chrome并运行:
cp /tmp/keywords.sql ~/.config/google-chrome/Default
./import_chrome_search_engines.sh
到目前为止,不,您不能。但是,您可以与同事共享书签。
到目前为止,链接到Google书签共享后,Google App用户将无法共享书签或书签列表。