Extraire une chaîne
Résolu
mecool23
-
mecool23 -
mecool23 -
Bonjour,
mon probléme consiste à extraire une chaîne de caractére bien précise, j ai ce script pour extraire la chaîne mais je sais pas comment l adapter à mon cas; voici le script
X=$(grep "Last_line" master.out | grep -o '[0-14][0-14]*')
Y=$(grep "First_pixel" master.out | grep -o '[0-14][0-14]*')
plotoffsets interferogram.out 1 "$X" 1 "$Y" 0.11 master.afiltered
et voici la chaine(soulignée) que je veux extraire
First_line (w.r.t. original_image): 1
Last_line (w.r.t. original_image): 26308
First_pixel (w.r.t. original_image): 1
Last_pixel (w.r.t. original_image): 4900
quelqu un peut m aider??
merci d avance
CYG
mon probléme consiste à extraire une chaîne de caractére bien précise, j ai ce script pour extraire la chaîne mais je sais pas comment l adapter à mon cas; voici le script
X=$(grep "Last_line" master.out | grep -o '[0-14][0-14]*')
Y=$(grep "First_pixel" master.out | grep -o '[0-14][0-14]*')
plotoffsets interferogram.out 1 "$X" 1 "$Y" 0.11 master.afiltered
et voici la chaine(soulignée) que je veux extraire
First_line (w.r.t. original_image): 1
Last_line (w.r.t. original_image): 26308
First_pixel (w.r.t. original_image): 1
Last_pixel (w.r.t. original_image): 4900
quelqu un peut m aider??
merci d avance
CYG
A voir également:
- Extraire une chaîne
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Chaine tnt gratuite sur mobile - Guide
- Extraire texte d'une image - Guide
- Extraire image pdf - Guide
3 réponses
Salut,
egrep '^(Last|First)_(line|pixel) ' master.out | egrep -o '[0-9]{2,}';-))
Bon déjà dans le fichier fourni sur cjoint, il n'y a aucune valeur "26308".
Ensuite, même si elle y était, comme il existe plusieurs lignes commençant par "Last_line" il faut savoir dans quelle partie, du moins entre quelle et quelle partie extraire cette fameuse ligne...
Sinon, la syntaxe donnée correspond à :
Ensuite, même si elle y était, comme il existe plusieurs lignes commençant par "Last_line" il faut savoir dans quelle partie, du moins entre quelle et quelle partie extraire cette fameuse ligne...
Sinon, la syntaxe donnée correspond à :
egrep Ou "grep -E" pour utiliser la syntaxe des expressions étendues '^(Last|First)_(line|pixel) ' On recherche toutes chaines commençant par Last OU First suivi d'un underscore et suivi par line OU pixel | Puis on filtre ce résultat egrep -o '[0-9]{2,}' En recherchant qu'une chaine exclusivement numérique et composée d'au moins 2 chiffres ou plus;-))
bonjour,
merci bcp pour l'explication, pour les valeurs vous avez raison je me suis trompé, c est 26445 au lieu de 26308.
votre commande va me donner juste une chaine, non?? car moi je veux extraire les deux chaines 26445 et 4900, et les remplacer respectivement dans ma ligne de commande <plotoffsets interferogram.out 1 "$X" 1 "$Y" 0.11 master.afiltered>avec ($X =26445, et $Y=4900)
merci d avance
CYG
merci bcp pour l'explication, pour les valeurs vous avez raison je me suis trompé, c est 26445 au lieu de 26308.
votre commande va me donner juste une chaine, non?? car moi je veux extraire les deux chaines 26445 et 4900, et les remplacer respectivement dans ma ligne de commande <plotoffsets interferogram.out 1 "$X" 1 "$Y" 0.11 master.afiltered>avec ($X =26445, et $Y=4900)
merci d avance
CYG
Ok, par contre tu m'as toujours pas dit sur quel(s) critère(s) déterminer les lignes voulues. En suivant ta demande je suppose que c'est les 2 premières rencontrées, exact ?
De ce fait, essayes avec ça :
De ce fait, essayes avec ça :
[tmpfs]$ X=$(egrep -m 1 '^Last_line ' master.out | egrep -o '[0-9]{2,}') [tmpfs]$ Y=$(egrep -m 1 '^Last_pixel ' master.out | egrep -o '[0-9]{2,}') [tmpfs]$ echo -e "X=$X\nY=$Y" X=26445 Y=4900 [tmpfs]$;-))