AWK probleme de syntaxe

samy -  
frp Messages postés 1 Statut Membre -
Bonjour,

j'ai un fichier texte nommer 'range' dans lequel j'ai des lignes qui ressemble a ça

<NOM1>_<DATE1>_<sujet1>_<TYPE1>
<NOM2>_<DATE1>_<sujet1>_<TYPE1>
<NOM3>_<DATE2>_<sujet2>_<TYPE2>
<NOM4>_<DATE2>_<sujet2>_<TYPE2>

ainsi de suite

Je souhaiterais lire les lignes une a une et recuperer les <sujet> afin d'en creer des repertoires
De même pour le TYPE

Je crois que la commande awk peut etre utile mais je n'en comprend que tres mal la syntaxe.

Si vous avez un tuyau je suis preneur

Merci
Configuration: Linux Ubuntu
Firefox 2.0.0.6

3 réponses

  1. samy
     
    On a pour l'instant quelque chose comme ca

    #!/bin/bash
    while read line
    do
    echo $line
    awk -F':' print $2

    done < test_sam_jerem

    Le résultat donne ça:
    sam:test:janvier
    awk: line 1: syntax error at or near print
    jerem:test:fevrier
    awk: line 1: syntax error at or near print
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    J'ai peut être une solution, mais avec "sed"...

    J'ai du coller le script sur cette page : http://pastebin.ca/870838 à cause que la mise en page du site (les balises "codes") ne m'affichait pas la syntaxe comme il faut ;-((

    ;-))
    0
  3. frp Messages postés 1 Statut Membre
     
    Bonjour,

    La commande awk devrait être, me semble-t-il :
    awk -F':' '{print $2}'
    au lieu de
    awk -F':' print $2

    Toutefois, je ne comprends pas comment votre script permet de passer du fichier "range" au résultat que vous obtenez.
    Le champ "sujet" semble se trouver en 3ème position, non en 2ème. Il semble que vous utilisez un fichier intermédiaire.

    À partir du fichier 'range', en considérant que les caractères "<", ">" et "_" sont des séparateurs et que le caractère "_" peut se trouver ailleurs, une solution possible serait :
    cat range.txt | sed s'/>\(_\)</:/g' | awk -F":" '{print $3}' | sort | uniq


    En espérant que cela puisse aider
    0