IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

PS et GREP : ne pas afficher toute la ligne


Sujet :

Shell et commandes GNU

  1. #1
    Membre actif
    Femme Profil pro
    Lycéen
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Par défaut PS et GREP : ne pas afficher toute la ligne
    Bonjour à tous,

    J'ai besoin de vos lumières concernant un petit script bash.

    Je cherche un processus avec ps et grep, exemple de résultat :
    6913 pts/0 S 0:52 /usr/bin/mplayer -ao alsa -cache 1024 -playlist http://toto.a.une.radio.de.folie/listen.pls

    je cherche à récupérer uniquement "-playlist http://toto.a.une.radio.de.folie/listen.pls" ? si cette recherche ce situe n'importe ou sur la ligne, il faut que je puisse le récupérer.

    J'ai des solutions avec cut, awk, sed, sauf que si je modifie l’exécution de mplayer et que "-playlist http://toto.a.une.radio.de.folie/listen.pls" se trouve dans une position différente (en début, au milieu, ou à la fin de la ligne), la valeur de awk cut sed doit être changé sinon il me retourne "-cache 1024" ou "-ao alsa" ... donc pas pratique

    Une idée ? il faut utiliser grep, egrep ? avec une expression régulière ?

  2. #2
    Membre actif
    Femme Profil pro
    Lycéen
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Par défaut
    j'utilise grep -o qui permet d'afficher l'occurence trouvé uniquement, problème c'est que si je cherche http, il ne m'affiche uniquement http... je continue de chercher.

  3. #3
    Membre actif
    Femme Profil pro
    Lycéen
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Par défaut
    problème résolu :

    ps ax | grep /usr/bin/mplayer | head -n 1 | egrep -o "playlist.*" | cut -d ' ' -f 2

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 283
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps ax | grep '/usr/bin/[m]player' | egrep -o "-playlist.*"

  5. #5
    Membre actif
    Femme Profil pro
    Lycéen
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps ax | grep '/usr/bin/[m]player' | egrep -o "-playlist.*"
    Erreur :

    grep*: option invalide -- 'p'
    Utilisation*: grep [OPTION]... MOTIF [FICHIER]...
    Exécutez «*grep --help*» pour obtenir des renseignements complémentaires.

    il faut enlever le - dans "-playlist.*"

  6. #6
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 283
    Par défaut
    Au temps pour moi. Je n'avais pas testé. C'était juste pour enlever l'étage de "head".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps ax | grep '/usr/bin/[m]player' | egrep -o "\-playlist.*"
    Je n'ai pas plus testé ;-)

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,
    Citation Envoyé par Flodelarab Voir le message
    Au temps pour moi. Je n'avais pas testé. C'était juste pour enlever l'étage de "head".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps ax | grep '/usr/bin/[m]player' | egrep -o "\-playlist.*"
    Je n'ai pas plus testé ;-)
    grep -o -- '-playlist.*'

  8. #8
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps $(pgrep mplayer) | grep -o -- "-playlist.*"

  9. #9
    Membre actif
    Femme Profil pro
    Lycéen
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Au temps pour moi. Je n'avais pas testé. C'était juste pour enlever l'étage de "head".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps ax | grep '/usr/bin/[m]player' | egrep -o "\-playlist.*"
    Je n'ai pas plus testé ;-)
    Merci, je n'ai pas compris ce que tu veux dire avec head, cela n'a totalement rien avoir avec la recherche de -playlist.

    J'utilise head, simplement parce que mplayer est multithread et que sans le head, j'aurais trois lignes quasi identiques, donc trois fois -playlist

  10. #10
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Citation Envoyé par Kalimeiro Voir le message
    J'utilise head, simplement parce que mplayer est multithread et que sans le head, j'aurais trois lignes quasi identiques, donc trois fois -playlist
    Ça aurait été une bonne idée d'indiquer dans ta question initiale qu'il y avait plusieurs processus mplayer et qu'il ne fallait en afficher qu'un ...

  11. #11
    Membre actif
    Femme Profil pro
    Lycéen
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    Ça aurait été une bonne idée d'indiquer dans ta question initiale qu'il y avait plusieurs processus mplayer et qu'il ne fallait en afficher qu'un ...
    Dans ma logique, le fait d'utiliser head démontre que je cherche à obtenir qu'une seule ligne, pourquoi à ton avis ? ...

  12. #12
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Citation Envoyé par Kalimeiro Voir le message
    Dans ma logique, le fait d'utiliser head démontre que je cherche à obtenir qu'une seule ligne, pourquoi à ton avis ? ...
    1: j'ai écrit "dans ta question initiale" et tu n'y mentionnes pas "head -1"

    2: la commande que tu as présentée comme solution et qui utilise "head -1" n'est pas fiable. Même s'il n'y a qu'un seul processus mplayer, "grep /usr/bin/mplayer" va renvoyer deux processus, le "vrai" mplayer et lui-même "grep /usr/bin/mplayer" puisque tu n'a rien fait pour qu'il ne soit pas détectable. On peut donc supposer que ton "head -1" est là pour ne retenir que le vrai processus mplayer et que tu postules que le grep apparaitra toujours en deuxième, ce qui n'est pas garanti (d'où le "pas fiable").

  13. #13
    Membre actif
    Femme Profil pro
    Lycéen
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    1: j'ai écrit "dans ta question initiale" et tu n'y mentionnes pas "head -1"

    2: la commande que tu as présentée comme solution et qui utilise "head -1" n'est pas fiable. Même s'il n'y a qu'un seul processus mplayer, "grep /usr/bin/mplayer" va renvoyer deux processus, le "vrai" mplayer et lui-même "grep /usr/bin/mplayer" puisque tu n'a rien fait pour qu'il ne soit pas détectable. On peut donc supposer que ton "head -1" est là pour ne retenir que le vrai processus mplayer et que tu postules que le grep apparaitra toujours en deuxième, ce qui n'est pas garanti (d'où le "pas fiable").
    1°) je t'invite à bien relire mon premier message : la ligne que tu as vu, c'est un retour PS, que viens faire head là dedans ? rien.

    2°) ce que tu as essayé de m'expliquer = grep -v grep, sauf que je ne l'ai pas mentionnée, simplement parce que cela va de soit.

    Pour rappel du premier message indiqué sur ce thread, je cherchais juste à savoir comment je pouvais "chopper" uniquement -playlist et ce qui suit derrière, pour le reste = hors sujet, et entre temps j'ai trouvée la solution, d'autre mon proposé des astuces bien sympa.

    Merci à tous.

  14. #14
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Citation Envoyé par Kalimeiro Voir le message
    2°) ce que tu as essayé de m'expliquer = grep -v grep, sauf que je ne l'ai pas mentionnée, simplement parce que cela va de soit.
    Ok, pas de problème, mais accepte que le fait de ne pas avoir mis ce "grep -v grep" qui va de soi dans ta solution et mis en revanche un "head -1" pouvait prêter à confusion, non ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Ne pas afficher tout le résultat de Shuffle
    Par Gunner4902 dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2008, 23h33
  2. [JpGraph] Ne pas afficher toutes le valeurs des abscisses
    Par coco38 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 10/04/2007, 10h25
  3. Jtable : ne pas afficher toute les colonnes
    Par ericT dans le forum Composants
    Réponses: 3
    Dernier message: 02/08/2006, 11h54
  4. Réponses: 1
    Dernier message: 29/11/2005, 00h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo