Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

grep, prendre la ligne suivante

4 réponses
Avatar
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.

4 réponses

Avatar
Fabien LE LEZ
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.
Avatar
Une Bévue
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.
Avatar
Une Bévue
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) ?
Avatar
Une Bévue
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.