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

3 réponses

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
jipicy Messages postés 41342 Statut Modérateur 4 896
 
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
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