grep, prendre la ligne suivante

Le
Une Bévue
bon, je demande pour grep, mais peut-être n'est-ce pas la bonne commande.

en connection via ssh, le script distant me revoit tout un tas de trucs :

yt@D620 ~ % recette
url = http://recettessimples.fr/news/feuillete-au-coeur-de-neufchatel
is_ssh = true
Entrez un type de recette :
Accompagnement [0]
Amuse-gueule [1]
Aperitif [2]

[.]

Vins [46]
17
ssh_category = Entree
l_path =
/Users/yt/Sites/Recettes/Entree/feuillete-au-coeur-de-neufchatel_fichiers/hoverbox.css
l_path =
/Users/yt/Sites/Recettes/Entree/feuillete-au-coeur-de-neufchatel_fichiers/feuillete-au-coeur-de-neufchatel
Downloading
'http://recettessimples.fr/news/feuillete-au-coeur-de-neufchatel' to
'/Users/yt/Sites/Recettes/Entree/feuillete-au-coeur-de-neufchatel_fichiers/feuillete-au-coeur-de-neufchatel'
done.

[.]

l_path =
/Users/yt/Sites/Recettes/Entree/feuillete-au-coeur-de-neufchatel_fichiers/Feuillete_Coeur_Neuchatel_entoure_de_pate_t.jpg
l_path =
/Users/yt/Sites/Recettes/Entree/feuillete-au-coeur-de-neufchatel_fichiers/tounge_smile.gif


iMac's URL :
http://[2a01:<coupé par
moi>:2559]/Recettes/index.html?page=/Recettes/Entree/feuillete-au-coeur-de-neufchatel.html


je souhaite récupérer la dernière ligne ci-dessus, celle qui est juste
après la ligne "iMac's URL :".

il y a peut-être "mieux" que grep pour cela, je connais --très mal-- les
outils unix.

aussi je peux changer facilement la sortie du script appelé via ssh,
c'est du ruby.

côté linux ma connection ssh se fait ainsi :
--
#!/usr/bin/zsh

URL=(`/usr/bin/xclip -o`)

SRV=yt@iMac
RMT_HOME="/Users/yt"
RMT_RECETTE="${RMT_HOME}/bin/recette"
/usr/bin/ssh ${SRV} "echo '${URL}' | pbcopy; ${RMT_RECETTE}"
exit 0
--

le but de la manip était d'avoir, dans une variable, disons URL, la
chaîne retournée et faire :
/usr/bin/xdg-open ${URL}
et ainsi ouvrir l'URL dans le navigateur par défaut.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fabien LE LEZ
Le #24192071
On Tue, 24 Jan 2012 13:45:57 +0100, Une Bévue

je souhaite récupérer la dernière ligne ci-dessus, celle qui est juste
après la ligne "iMac's URL :".



grep -A 1 "iMac's URL :" | tail -n 1

ou bien

grep -A 1 "iMac's URL :" | grep -v "iMac's URL :"

L'idée est demander à grep de fournir, en plus, la ligne juste après
la ligne qui contient le texte, puis de supprimer cette dernière.
Une Bévue
Le #24192061
Le 24/01/2012 13:45, Une Bévue a écrit :
bon, je demande pour grep, mais peut-être n'est-ce pas la bonne commande.



apparemment ce ne serait pas possible avec grep mais avec awk :

~ % awk "/iMac's URL :/ { getline; print }" < Bureau/ssh-rep.txt
http://[2a01:<coupé par
moi>:2559]/Recettes/index.html?page=/Recettes/Entree/feuillete-au-coeur-de-neufchatel.html

reste + qu'à mettre ça entre '' et ouvrir avec xdg-open.
Une Bévue
Le #24192141
Le 24/01/2012 13:50, Fabien LE LEZ a écrit :
grep -A 1 "iMac's URL :" | tail -n 1

ou bien

grep -A 1 "iMac's URL :" | grep -v "iMac's URL :"

L'idée est demander à grep de fournir, en plus, la ligne juste après
la ligne qui contient le texte, puis de supprimer cette dernière.



OK, merci beaucoup, tes deux solutions marchent très bien.
Celle que j'ai trouvée sur le net avec awk aussi.

donc, je pense donc changer la dernière ligne de mon script :

/usr/bin/ssh ${SRV} "echo '${URL}' | pbcopy; ${RMT_RECETTE}"

par qqc du genre :


URL=(`/usr/bin/ssh ${SRV} "echo '${URL}' | pbcopy; ${RMT_RECETTE}" |
grep -A 1 "iMac's URL :" | tail -n 1 `)
URL="'${URL}'" # pour mettre l'URL entre ''
/usr/bin/xdg-open ${URL}

y-a t'il un moyen plus simple pour mettre "http://..." entre ''
(nécessité par xdg-open) ?
Une Bévue
Le #24192171
Le 24/01/2012 14:12, Une Bévue a écrit :
y-a t'il un moyen plus simple pour mettre "http://..." entre ''
(nécessité par xdg-open) ?



ben, je viens de vérifier au terminal, c'est inutile, et nuisible, quand
l'URL est obtenue par scripting.

ce que j'ai fait :

~ % URL=(`cat Bureau/ssh-rep.txt | grep -A 1 "iMac's URL :" |
tail -n 1 `)
~ % xdg-open $URL

~ % Nouvelle fenêtre ouverte dans la session du navigateur

~ %


Bureau/ssh-rep.txt représentant le résultat de ma commande ssh.
Publicité
Poster une réponse
Anonyme