回答:
LinuxでChrome検索エンジンをCSVとしてエクスポートする1つのコマンドを次に示します。
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 insertステートメントにエクスポートできます。
(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 ====> 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 Studioやsqlite などのSQLiteプログラムでファイルを開き(sudo apt-get install sqlite)、SQLite Studioでキーワードテーブルをエクスポートするか、Linuxで次のコマンドを実行します。
sqlite3 "Web Data" ".dump keywords" > keywords.sql
このプロセスの逆を行って、同僚にキーワードをインポートしてもらいます。
私が言ったように、可能ですが、痛みを伴います。
SQLをWebデータからほぼ普遍的なNetscapeブックマークファイル形式に変換するJavascriptパーサーを作成しましたFirefoxのような他のブラウザにキーワードを取得することに興味がある場合 HTML(その形式の決定的な標準はMicrosoftのようです)またはOpera。
代替ソリューションに興味がある場合は、任意のブラウザーで同じカスタム検索エンジンのセットを使用できるようにする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つのファイルをターゲットマシンに配置します
JSONデータから定義をロードするPythonスクリプトを書きました。これで、構成をコードとして管理できます。
https://gist.github.com/ninowalker/9952bf435f8acffa3ef59d6c538ca165
これはi等です(たとえば、複数回実行できます。キーワードによって重複を追加することはできません)。
python2およびOSXで動作します。他のプラットフォームをサポートするように変更できます。
私はWindows 10を使用しており、個人のchromeプロファイルから企業のchromeプロファイルに検索エンジンをコピーしたかったです。私は次のことをしました:
SQLiteをhttps://www.sqlite.org/download.htmlからダウンロードしました(「プリコンパイル済みバイナリ」の下に「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ユーザーはブックマークまたはブックマークのリストを共有できません。