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 :

[CSH] Afficher la ligne suivante celle trouvée par grep


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé Avatar de fantomas261
    Inscrit en
    Avril 2007
    Messages
    486
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 486
    Par défaut [CSH] Afficher la ligne suivante celle trouvée par grep
    bonjour

    je cherche comment afficher la ligne qui suit la ligne rechercher par une commande avec des filtre

    grep -i "$1, par" fich.txt
    cette expression me retourne plusieurs lignes et je voudrais connaitre les lignes qui suit chaque ligne trouvées dans fich.txt

    merci

    exemple

    aaaaaaa, par aaaaaa
    ligne suivante n°1
    bbbbbbbbbbbbbbbb
    aaaaaaa, par bbbbb
    ligne suivante n°2
    nnnnnnnnnnnnnnn

    en ecrivant grep "aaaaaa, par" fich.txt
    cette commande retourne la premiere et le quatrieme ligne

    mais moi je voudrais connaitre aussi la le 2eme et la 5eme

    merci

  2. #2
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Citation Envoyé par leopard261
    bonjour

    je cherche comment afficher la ligne qui suit la ligne rechercher par une commande avec des filtre

    grep -i "$1, par" fich.txt
    cette expression me retourne plusieurs lignes et je voudrais connaitre les lignes qui suit chaque ligne trouvées dans fich.txt

    merci

    exemple

    aaaaaaa, par aaaaaa
    ligne suivante n°1
    bbbbbbbbbbbbbbbb
    aaaaaaa, par bbbbb
    ligne suivante n°2
    nnnnnnnnnnnnnnn

    en ecrivant grep "aaaaaa, par" fich.txt
    cette commande retourne la premiere et le quatrieme ligne

    mais moi je voudrais connaitre aussi la le 2eme et la 5eme

    merci

    Solution :

    grep -i -A1 "$1, par" fich.txt


    http://www.linux-kheops.com/doc/man/...n1/grep.1.html

    .../...
    -A num
    Afficher num lignes supplémentaires après la ligne correspondante.
    -B num
    Afficher num lignes supplémentaires avant la ligne correspondante.
    .../...

  3. #3
    Membre éclairé Avatar de fantomas261
    Inscrit en
    Avril 2007
    Messages
    486
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 486
    Par défaut
    j aimerais afficher juste la ligne suivante

    effet le problème est de chercher des livres dans une base de donnés
    certains livres contiennent des résumés

    par exemple

    titre, par auteur
    <<
    résumé
    >>

    si la ligne suivante est << alors il y a un resumé et je dois afficher le titre et nom auteur puis le resumé

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Par défaut
    heuuuu...... une base de donnée ASCII ?????
    l'age du néolithique n'existe plus que en exercice scolaire .....

    juste la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    grep -A1 "$1, par" fich.txt  | grep "<<"
    montre un peut ou tu en est.

  5. #5
    Membre éclairé Avatar de fantomas261
    Inscrit en
    Avril 2007
    Messages
    486
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 486
    Par défaut
    Citation Envoyé par MarcG
    heuuuu...... une base de donnée ASCII ?????
    l'age du néolithique n'existe plus que en exercice scolaire .....

    juste la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    grep -A1 "$1, par" fich.txt  | grep "<<"
    montre un peut ou tu en est.
    je dois ecrire un programme en csh avec la technologie cgi.

    j ai une page web qui recherche des livres
    cette page est constitué d un champs de texte où je dois renseigner le titre ou l auteur du livre.
    un bouton radio titre un bouton radio auteur
    un case a coché pour obtenir le resumé.

    une recherche me renvoie le titre du livre et le nom de l auteur
    dans le fichiers texte , la structure est la suivante : titre, par auteur
    si je coche le resumé la recherche renvoie lle titre du livre et le nom de l auteur et le resumé s il existe. une recherche peux me donner plusieurs resultat.

    si je renseigne le titre et je coche pas le resumé
    j ecrit
    sed -e 's/éèê/e/g' -e 's/ô/o/g' (je ne dois pas ecrire de carateres accentués dans le champ de la page web) fich.txt| grep -i "$2.*, par" >>! resultats.txt

    si je renseigne l auteur et je coche pas le resumé
    j ecrit
    sed -e 's/éèê/e/g' -e 's/ô/o/g' fich.txt| grep -i ", par .*$2" >>! resultats.txt

    si je ne coche aucun des boutons :
    sed -e 's/éèê/e/g' -e 's/ô/o/g' fich.txt| grep -i ", par .*$2" >>! resultats.txt
    sed -e 's/éèê/e/g' -e 's/ô/o/g' fich.txt| grep -i "$2.*, par" >>! resultats.txt

    pour le resumé j ai une petite idée mais la syntaxe n est pas bonne :

    creer une liste qui contient les numero des debuts des resumés

    set num `grep -A1 -n "$2.*,par fich.txt | grep ">>" | sed -e 's/->>//g' `

    foreach n ($num)
    set fin = `sed -e 1,{$n}d | grep -n "<<" | sed -e 's/ [[:digit]]//g'
    sed -n 1,{$n}d $fin,(nombre_de_ligne_de_fich.txt)d >> resultat
    puis faire un tri avec sort sur les numero , mais j ai plusieurs fich.txt ...
    end

    titre, par auteur
    >>
    resumé
    <<
    y a t il plus simple donner moi vos idees

Discussions similaires

  1. [XL-2003] Masquer ou afficher des lignes suivant clic sur bouton voulu
    Par stephj dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/02/2011, 09h41
  2. Réponses: 5
    Dernier message: 27/01/2011, 14h41
  3. A la ligne suivante sans passer par #13#10 dans un richedit
    Par Ardely dans le forum Composants VCL
    Réponses: 13
    Dernier message: 24/08/2007, 17h58
  4. Afficher une liste, avec 2 résultats par ligne
    Par toutoune60 dans le forum JSF
    Réponses: 5
    Dernier message: 12/02/2007, 15h49
  5. afficher une ligne(par son numero) d'une JTable
    Par linouline dans le forum Composants
    Réponses: 7
    Dernier message: 27/05/2006, 14h11

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