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 :

AWK et intervalle


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Par défaut AWK et intervalle
    Salut,

    Petit problème tout simple, mais je tourne en rond

    j'ai un fichier type csv avec des ;
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cat test.csv
    ;Motif;info1;info2;info3; phrase avec des retours chariot
    adfa
    asdfsdfa #
     
    dsafada
    sdfa?.
    ;Motif;info1;info2;info3; phrase ....
    ;Motif;info1;info2;info3; phrase ....
    ;Motif;info1;info2;info3; phrase ....
    Je considère qu'une "ligne" qui est comprise entre ";Motif" et le ;"Motif" de la ligne suivante.

    Je pensais faire tout simplement un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '/^;Motif;/ , /^;Motif;/ test.csv'
    évidement ça ne marche pas, ça ne me rame que les lignes avec le motif, normal en somme
    je l'ai joué un peu trop facile

    donc si vous avez une solution je prend

    Merci beaucoup
    Alx

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,

    que cherches-tu à obtenir ?

    le Record Separator ne peut-il être le point ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    le Record Separator ne peut-il être le point ?
    ok mon exemple était "foireu"
    Malheureusement il n'y a pas séparateur de fin de le ligne "identifiable"
    le point n'est pas forcément présent à la fin de chaque ligne.

    par contre je suis sur que le ";Motif;" apparait à chaque début de "ligne"

    ce que je veux en faite, c'est juste traiter mon fichier ligne "complète" à ligne "complète"

    J’espère que c'est plus clair

    Merci en tout cas pour ta réponse N_BaH

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par alx13 Voir le message
    ok mon exemple était "foireu"
    Malheureusement il n'y a pas séparateur de fin de le ligne "identifiable"
    le point n'est pas forcément présent à la fin de chaque ligne.

    par contre je suis sur que le ";Motif;" apparait à chaque début de "ligne"

    ce que je veux en faite, c'est juste traiter mon fichier ligne "complète" à ligne "complète"

    J’espère que c'est plus clair

    Merci en tout cas pour ta réponse N_BaH
    Salut
    Ok, pour toi une "ligne" est le texte commençant par ";Motif;" et allant jusqu'au ";Motif;" suivant sans se préoccuper des "\n" éventuels.

    Mais tu n'as pas dit ce que tu désirais faire de ta ligne...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Salut
    Ok, pour toi une "ligne" est le texte commençant par ";Motif;" et allant jusqu'au ";Motif;" suivant sans se préoccuper des "\n" éventuels.

    Mais tu n'as pas dit ce que tu désirais faire de ta ligne...
    Oui c'est exactement ça.

    Qu'est-ce que je fais avec, plein truc je decoupe la chaine dans des variables que je traite selon plein règle.

    Merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $ cat test.csv
    ;Motif;info1;info2;info3; phrase avec des retours chariot
    adfa
    asdfsdfa #
     
    dsafada
    sdfa?.
    ;Motif;info1;info2;info3; phrase ....
    ;Motif;info1;info2;info3; phrase ....
    ;Motif;info1;info2;info3; phrase ....
     
    $ awk '
    BEGIN {
      RS=";Motif"
    }
    {
      print "debut" $0 "fin"
    }
    ' test.csv
    Résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    debutfin
    debut;info1;info2;info3; phrase avec des retours chariot
    adfa
    asdfsdfa #
     
    dsafada
    sdfa?.
    fin
    debut;info1;info2;info3; phrase ....
    fin
    debut;info1;info2;info3; phrase ....
    fin
    debut;info1;info2;info3; phrase ....fin

Discussions similaires

  1. insérer un retour chariot à intervalle régulier en bash ou awk
    Par mamax49 dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 11/09/2014, 09h35
  2. Afficher un intervalle de champs avec awk
    Par sedawk dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 30/11/2011, 10h19
  3. Tableau en paramètre - Shell et Awk
    Par gc243 dans le forum Linux
    Réponses: 7
    Dernier message: 10/12/2003, 13h32
  4. Réponses: 7
    Dernier message: 02/06/2003, 08h38
  5. [langage] awk et sed dans script perl
    Par scoti dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2003, 18h26

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