VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Script awk : extraction de données [Résolu]

bouna - Dernière réponse le 18 août 2010 à 14:53
Bonjour,
je souhaite avoir un scripte sh qui fait l'extraction de données dans un fichier fich1 contenant plusieurs enregistrementspour contituer le fichier fich2
le fichier fich1 contient:
- un entete et un pied de page
- et plusieurs lignes contenant 849 caracteres chacune.
le scripte doit extraire les données de la meme ligne aux positions:
- 31 à 50
- 353 à 364
- 364 à 372
- 372 à 377
- 470 à 500
puis separe ces champs par un par '|'
merci de m'aider pour ce script
Lire la suite 

Script awk : extraction de données »

15 réponses
Réponse
+1
moins plus
hello
il ne faut traiter qu'une ligne ou toutes les lignes de 849 caractères ?
LIGNE contient le No de la ligne à traiter
LIGNE=x
$ awk -v L=$LIGNE 'NR==L {print substr($0,31,20) "|" substr($0,353,12) "|" substr($0,364,9) "|" substr($0,372,6) "|" substr($0,470,31)}' fich1 > fich2
$
bouna - 18 août 2010 à 14:36
MERCI ca marche exactement je le voulais.
seul le message erreur sur la femetre d'execution mais c'est pas genant
"awk: line 0 (NR=101): file is binary"
merci encore une fois.
dubcek- 18 août 2010 à 14:45
il doit y avoir un caractères spécial à la ligne 101
cat -nA  fic1| grep '^ *101'
bouna - 18 août 2010 à 14:53
oui vous aviez parfaitement raison. je l'ai enleve et c'est OK
merci a bientot
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Une piste ici http://www.commentcamarche.net/forum/affich-5866627-extraction-de-champs-avec-awk#2
bouna - 17 août 2010 à 15:04
bjr lami, ce cas est un fichier de longueur indefinie et n'insere pas le caracter | entre les champs.
merci de maider !!!
lami20j- 17 août 2010 à 15:30
Re,

Quelque soit la ligne tu dois extraire toujours au même endroit?
awk c'est obligatoire?
Un exemple de quelques lignes de ton fichier sera mieux.
Ajouter un commentaire
Ce document intitulé « script awk : extraction de données » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?