0 votes

Comment obtenir une liste d'URL à partir du dossier d'un signet défini dans Safari ?

Disposer de nombreux signets dans les Favoris de Safari. Disons que nous avons un dossier appelé perl et il contient de nombreux liens ainsi que des sous-mondes avec des liens, comme dans la capture d'écran :

enter image description here

Il est nécessaire d'extraire tous les liens marqués d'un signet de la base de données perl et ses sous-dossiers à l'aide de la ligne de commande de ONLY Terminal . Par exemple, vous voulez exécuter une commande dans le Terminal, comme :

get_my_bookmarks perl

et le résultat sera une liste d'URL.

Il est possible d'y parvenir avec applescrit, par exemple avec

 osascript -e '... some applescript voodoo ...'

ou en utilisant un outil quelconque et en extrayant les informations sur les liens souhaités à partir du fichier binaire. ~/Library/Safari/Bookmarks.plist , par exemple la suivante

/usr/libexec/PlistBuddy -x -c Print ~/Library/Safari/Bookmarks.plist

extrait toute la liste (xml) - mais comment extraire facilement uniquement les URL d'un dossier de signets défini ? Une idée pour un moyen simple ?

0voto

jm666 Points 7802

Après quelques recherches sur Internet et l'apprentissage XPath expressions, la solution est vraiment simple :

Le script shell script suivant - disons que son nom est dump_bookmarks.sh ,

#!/bin/bash
for foldername
do
    /usr/libexec/PlistBuddy -x -c Print ~/Library/Safari/Bookmarks.plist | \
    xmlstarlet sel --net -t -v "//key[.='Title']/following-sibling::string[.='$foldername']/parent::node()//key[.='URLString']/following-sibling::string[1]"
    echo    #print an newline after the last entry
done

et l'utiliser comme

./print_bookmarks.sh perl  #argument is the bookmark-folder name

imprimera une liste des URLs marquées, comme dans la capture d'écran ci-dessus :

https://metacpan.org/pod/Path::Tiny
http://perlmaven.com/perl-based-open-source-products
http://www.perl.com/pub/2012/04/perlunicook-standard-preamble.html
https://acidcycles.wordpress.com/2010/11/24/implementing-factories-in-perl/
http://gcstar.softonic.com/
http://steffen-wendzel.blogspot.de/p/blog-page_24.html
http://continuity.tlt42.org/

Pour le script, vous devez installer le fichier xmlstarlet par exemple en utilisant la commande Macports

sudo port install xmlstarlet

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X