回答:
開いているFirefoxタブの現在開いているURLは、ディレクトリのsessionstore.jsどこかにあるファイルに保存されます$HOME/.mozilla/firefox/XXXXXXXX.default。
したがって、次のようなものから始めることができます。
cat $HOME/.mozilla/firefox/*default/sessionstore.js | sed "s/{/\n/g" | egrep -o '"url".*"scroll"' | cut -d\" -f4
使用してcat、我々は、そのファイルを表示することができ、かつの助けを借りてsed、egrepそしてcut私たちは、そのファイルから開かれたFirefoxのタブのURLのみを選択します。
sessionstore.jsファイルの内容を表示し、出現"を\n(改行)で置き換え、httpまたはを含む行のみをフィルターで除外しますhttps。ファイルを表示してみてください。改行が必要な理由がわかります:)
sessionstore.jsには、開いているタブのアドレスだけではありません。他にも多くのアドレスがあります。
sessionstore.jsFirefox のファイルを使用しています。問題は、このファイルがタブを失うことで有名です。ここで欲しいのは、Firefoxに彼のタブが何であるかを尋ねる並列ソリューションです。AppleScriptのように。
その情報は$ HOME / .mozilla / firefox / * default / sessionstore.jsに保存され、その形式はjsonです。
次の例は、PHPで動作するように作成されています。すべてのFirefoxウィンドウ、すべてのタブを調べ、「エントリ」内の最後のエントリである関連情報を取得します。xpathを使用して解析できる場合、/ windows / * / tabs / last()/ urlのようになります(xpathの知識は錆びています)。
このコードを端末にコピー/貼り付けできます:
cat $HOME/.mozilla/firefox/*default/sessionstore.js | php -r '
$json=json_decode(fgets(STDIN), TRUE);
foreach($json["windows"] as $w)
foreach($w["tabs"] as $t)
echo end($t["entries"])["url"]."\n";'
編集:perlを使用します(ただし、最初にsudo apt-get install libjson-pp-perl):
cat $HOME/.mozilla/firefox/*default/sessionstore.js | perl -e '
use JSON qw( decode_json );
my $json = decode_json(<STDIN>);
foreach my $w ( @{$json->{"windows"}} ) {
foreach my $t ( @{$w->{"tabs"}} ) {
print $t->{"entries"}[-1]->{"url"}."\n";
}
}'
sessionstore.jsFirefox のファイルを使用しています。問題は、このファイルがタブを失うことで有名です。ここで欲しいのは、Firefoxに彼のタブが何であるかを尋ねる並列ソリューションです。AppleScriptのように。
recovery.js9つのウィンドウと840のタブを持つ-fileの両方のメソッドをテストしましたが、それらは魅力的に機能しました!-直後の配管出力をテキストファイルに私が設定した文字マップにISO-8859-15のファイルのためのperl-方法を ...!
これは、Firefoxの最前面/アクティブタブの現在のURLを抽出する方法です。
cat recovery.js | php -r '$json=json_decode(fgets(STDIN), TRUE); $tindex = $json["windows"][0]["selected"]-1; $eindex = $json["windows"][0]["tabs"][$tindex]["index"]-1; echo $json["windows"][0]["tabs"][$tindex]["entries"][$eindex]["url"];'
説明:最初に、アクティブなタブのインデックスを見つけ、$tindex次にこのタブでアクティブな履歴エントリのインデックスを見つけます$eindex。
Firefoxは15秒ごとにバックアップを作成し*default/sessionstore-backups/recovery.jsます。
egrepパターンに必要な二重引用符zsh。それ以外、素敵なヒント、ありがとう:)