extraire une chaine de caractere à l'aide de awk ou autre chose ... - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 08-01-2004 à 13:44:07
awk est un outil tres puissant, tu peux tout faire ,
avec awk -f toto.cmd , tu peux metres un fichier de commande
avec une programmation c-like, pour plus de précision
tout simplement man awk : c'est un veritable manuel trés complet
Marsh Posté le 08-01-2004 à 14:04:57
merci pour la réponse.
qu'est ce que c-like ??
Sinon, n'il y a t-il pas de solution simple car le man awk est un peu énorme ...
Marsh Posté le 08-01-2004 à 14:10:38
essaye voir ca :
|
Donne voir quand même la structure du fichier pour voir si y a moyen de faire plus propre
Marsh Posté le 08-01-2004 à 14:24:15
avec awk :
|
Marsh Posté le 08-01-2004 à 14:29:50
bobuse a écrit : avec awk :
|
ouai mais faut combiner ca avec le awk de départ pour piocher dans le fichier direct
Marsh Posté le 08-01-2004 à 14:45:19
|
mais marche pas si un point est contenu dans la chaine de caractères.
Marsh Posté le 08-01-2004 à 14:52:00
en gros y a x manières de le faire (avec x très grand)
Marsh Posté le 08-01-2004 à 14:52:46
merci pour vos reponses !
le sed me conviens ainsi que le gsub
head -n1 Obstacle.sauv | awk '{gsub("[0-9]*[.][0-9]*","",$0); print $0 }'
Mes fichiers que je compte traiter avec cette ligne de commande peuvent être très volumineux car ils contiennent différentes sauvegardes de calculs à différents temps (le chiffre que je veux recuperer). Je vous montre juste le début :
[moi@monpc repertoire]$ head -n10 fichier
vitesseChamp_Facedom30.005000
Champ_Face
3.000500e+01
1
2091
1
2091
2091
[moi@monpc repertoire]$
le but final de mon script est de voir dans la première ligne du fichier de sauvegarde, la première chaine de caractère qui est collée à mon temps de sauvegarde. une fois la ligne identifiée, je recherche la dernière ligne du fichier contenant cette chaine de caractère et j'en déduit le dernier temps de sauvegarde. malin, non ?
Marsh Posté le 08-01-2004 à 15:05:04
il a quand meme l'air super mal foutu ton fichier tu n'as pas moyen de modifier le programme qui le crée pour structurer un poil plus la sortie par exemple ?
Marsh Posté le 08-01-2004 à 15:57:52
le fichier est issu d'un code de calcul de plus de 500 000 lignes ecrit en C++/fortran et dont la compilation dure plusieurs heures.
Et je ne montre qu'une partie du fichier car sa taille peut atteindre plusieurs Giga de données
Marsh Posté le 08-01-2004 à 17:26:54
en même temps modifier le format de sortie ca doit pas prendre 107 ans non plus
Marsh Posté le 20-01-2004 à 17:09:40
Si j'ai bien tout compris ...
Code :
|
Marsh Posté le 08-01-2004 à 13:36:12
Bonjour,
Je cherche à extraire une chaine de caractère d'un fichier et de la récuper comme variable.
Voici un exemple :
[moi@monpc moi]$ head -n1 fichier
vitesseChamp_Facedom30.005000
[moi@monpc moi]$
j'aimerai recuper dans une variable juste le nombre.
Je pensais utiliser awk (ex :head -n1 fichier|awk '{printf $2} ') mais je ne vois pas comment séparer le texte du nombre
Je n'ai pas trouvé sur le site de topic à se sujet.
Est ce que quelqu'un aurait une idée ??
je vous remercie par avance.