Aide awk
Résolu
dna.factory
Messages postés
26003
Date d'inscription
Statut
Modérateur
Dernière intervention
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'aurais besoin d'aide pour réaliser la commande suivante :
Dans un fichier, j'ai une commande qui peut être placé à différents endroits.
différentes lignes, mais aussi différentes position dans la ligne.
(et bien évidement, je suis même pas sur que l'info soit présente).
En plus, cette information est composée d'une partie fixe (toujours la même, utilisée pour la recherche), et d'une partie variable (qui m'intéresse)
Pour extraire la ligne, facile, un grep, et c'est reglé.
grep value fichier
Je me retrouve donc avec des lignes pouvant avoir le format suivant
aaaaaaa bbbbbb cccccccc ddddddd value=XXX
value=XXY
aaaaaaa bbbbbb ddddddd value=XYX cccccccc
pour la solution, je l'ai sur le bout de la langue :
Un
awk '{ for(i=1;i<=NF;i++) {if (??????) print $i }}
ce qui me manque en fait, c'est comment faire la condition sachant que ce n'est pas un == mais un contient.
(je suppose qu'en plus, avec mon awk mon grep ne sert plus à rien :)
Merci d'avance pour l'aide
J'aurais besoin d'aide pour réaliser la commande suivante :
Dans un fichier, j'ai une commande qui peut être placé à différents endroits.
différentes lignes, mais aussi différentes position dans la ligne.
(et bien évidement, je suis même pas sur que l'info soit présente).
En plus, cette information est composée d'une partie fixe (toujours la même, utilisée pour la recherche), et d'une partie variable (qui m'intéresse)
Pour extraire la ligne, facile, un grep, et c'est reglé.
grep value fichier
Je me retrouve donc avec des lignes pouvant avoir le format suivant
aaaaaaa bbbbbb cccccccc ddddddd value=XXX
value=XXY
aaaaaaa bbbbbb ddddddd value=XYX cccccccc
pour la solution, je l'ai sur le bout de la langue :
Un
awk '{ for(i=1;i<=NF;i++) {if (??????) print $i }}
ce qui me manque en fait, c'est comment faire la condition sachant que ce n'est pas un == mais un contient.
(je suppose qu'en plus, avec mon awk mon grep ne sert plus à rien :)
Merci d'avance pour l'aide
3 réponses
cette information est composée d'une partie fixe (toujours la même, utilisée pour la recherche), et d'une partie variable (qui m'intéresse)
awk '{ for(i=1;i<=NF;i++) {if ($i ~ "^value") print gensub("[^=]*=","","g",$i) }}'
XXX
XXY
XYX
aaa.. j'avais écrit un super message super bien tourné... et j'ai cliqué sur annuler..
en résumé..
J'ai bien l'option -P dans mon man, mais quand j'essaye de l'utiliser
grep: The -P option is not supported
Debian 4.0
GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)
Je garde quand même, ça peut servir (sur le Centos par exemple).
en résumé..
J'ai bien l'option -P dans mon man, mais quand j'essaye de l'utiliser
grep: The -P option is not supported
Debian 4.0
GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)
Je garde quand même, ça peut servir (sur le Centos par exemple).
Salut,
Et si tu nous disais exactement quel résultat final tu veux obtenir ?
La valeur de value de chaque ligne retournée ou autre chose ?
Et si tu nous disais exactement quel résultat final tu veux obtenir ?
La valeur de value de chaque ligne retournée ou autre chose ?