Awk

Résolu
Bonjour,

Je travaille en ce moment dans le cadre de mes études sur le shell. est-ce-que quelqu'un peut peu me donner des liens sur la commande awk?

comment faire SVP.

6 réponses

  1. Modérateur
    jp@MDK:~/tmpfs ssh$ cat plop
    90914000, 90919200.
    30163100.
    45262700, 45421152,45311000,45431000,45442100.
    42521000.
    60171000.
    24111500.
    50712000.
    45212350, 45000000.
    PTION ET GESTION DE CONTRATS D'ASSURANCE. SOUSCRIPTION ET GESTION DE CONTRATS D'ASSURANCE 'DOMMAGES AUX BIENS', 'RESPONSABILITE CIVILE', 'FLOTTE AUTOMOBILE' ET 'PROTECTION JURIDIQUE'. CPV: 66330000, 66333000, 66337000, 66334100
    /OBJET>
    66510000.
    66510000.
    34114121.
    45200000, 45316110,45112500.
    45231112.
    39300000.
    90500000.
    66510000.
    32412100.
    98390000.
    90910000, 90911300,90919200.
    90910000, 90911300,90919200.
    48822000.
    32232000.
    55900000.
    60100000, 60200000.
    45000000.
    71300000, 71317000.
    33111710, 03222310 - LA14.
    
    jp@MDK:~/tmpfs ssh$ sed 's/[^0-9,-]//g;s/,/\n/g;s/-.*//' plop | sed '/^$/d'
    90914000
    90919200
    30163100
    45262700
    45421152
    45311000
    45431000
    45442100
    42521000
    60171000
    24111500
    50712000
    45212350
    45000000
    66330000
    66333000
    66337000
    66334100
    66510000
    66510000
    34114121
    45200000
    45316110
    45112500
    45231112
    39300000
    90500000
    66510000
    32412100
    98390000
    90910000
    90911300
    90919200
    90910000
    90911300
    90919200
    48822000
    32232000
    55900000
    60100000
    60200000
    45000000
    71300000
    71317000
    33111710
    03222310
    
    jp@MDK:~/tmpfs ssh$
    ;-))
    1. Modérateur
      Ben voilà avec le fichier que tu m'as envoyé ce que ça donne...
      jp@MDK:~/tmpfs/siham ssh$ sed -n '
      /<FICHE>/,/<\/FICHE>/{
      /<IDINFO>\|<DATEPUBLI>\|<DEP>\|<LIEUEXE>/p
      }
      ' siham | sed '/<IDINFO>/{:z;N;/<\/DEP>$/!bz; s/<[^>]*>//g;s/\n/,/g;s/\n/,/g;s/\s\+//g}'
      6372655,04/01/2008,ALLIER,03
      6372656,04/01/2008,MOULINS,03
      6372657,04/01/2008,NERISLESBAINS,03
      6372658,04/01/2008,CONDAMINECHATELARD(LA),04
      6372669,04/01/2008,NICE,06
      
      jp@MDK:~/tmpfs/siham ssh$
      ;-))
      1. Modérateur
        Tu peux m'envoyer via cjoint et en MP un morceau de ton fichier (disons avec une dizaine d'appels d'offres dedans) que je fasse des essais "grandeur nature" on va dire ?
        1. Modérateur
          Essaie voir ça :
          sed -n '
          /<FICHE>/,/<\/FICHE>/{
          /<IDINFO>\|<DATEPUBLI>\|<DEP>\|<LIEUEXE>/p
          }
          ' fichier_exemple
          avec un fichier_exemple dans lequel tu auras mis 3 ou 4 exemples d'appels d'offres comme celui du post précédent...
          1. Modérateur
            Décomposes chaque commande et vois si le résultat est le bon...
            grep '^:' /home/servomap/groupements
            grep '^:' /home/servomap/groupements | sort
            grep '^:' /home/servomap/groupements | sort | uniq 
            grep '^:' /home/servomap/groupements | sort | uniq | awk -F': ' '{ print $2 }'
            1. Modérateur
              Salut,
              grep '^:' /home/servomap/groupements | sort | uniq | awk -F': ' '{ print $2 }'
              ;-))