AWK probleme de syntaxe
samy
-
frp Messages postés 1 Statut Membre -
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
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
A voir également:
- AWK probleme de syntaxe
- Trouver erreur de syntaxe fichier txt ✓ - Forum PHP
- Impossible d'ouvrir un fichier txt avec Python ✓ - Forum Python
- Trouver erreur de syntaxe fichier txt pix - Forum Autoit / batch
- Convertion .txt ------>.wtf HELP!!! ✓ - Forum Windows
- La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte - Forum Logiciels
3 réponses
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
#!/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
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 ;-((
;-))
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 ;-((
;-))
Bonjour,
La commande awk devrait être, me semble-t-il :
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 :
En espérant que cela puisse aider
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