Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1006 connectés 

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

awk substr ! :p

n°1002507
tabasko
Posté le 17-01-2008 à 10:41:43  profilanswer
 

Bonjour à tous :)
Péniblement mais surement j'ai réussi à composer cette commande :
 
awk '( length($12)  && substr($12,1,5) ~ /12345/)'  toto.txt
 
Pour moi cela regarde la colonne 12, et me renvoit la ligne à condition que les 5 premiers caractères soit 12345.
 
1/ j'ai bon ?
2/ quelle serait la bonne syntaxe pour rajouter une autre condition pour avoir par exemple 12345 et 23456.
 
Merci. :heink:

mood
Publicité
Posté le 17-01-2008 à 10:41:43  profilanswer
 

n°1003288
p-seeker23
Posté le 18-01-2008 à 21:15:56  profilanswer
 

Heu.. oui c'est bon ! Bizarre, mais bon !
La syntaxe awk c'est: condition {action} (l'action par défaut est: print $0)
 
Pour avoir toutes les lignes dont le 12e mot commence par 12345, il suffit de: awk '$12 ~ /^12345/' toto.txt
Le ^ veut dire: au début ($ veut dire à la fin).
Le length($12) ne sert à rien: il vérifie juste si $12 est non vide, équivalent à: $12 != "". Mais si $12 est vide, jamais $12 ne commencera pas 12345 !
Donc substr($12,1,5) == "12345" suffit.
 
Tu peux rajouter d'autres conditions sur d'autres mots de la ligne en les conbinant logiquement à la C: awk '$2 ~ /23456/ && $12 ~ /12345/' toto.txt


Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : awk substr ! :p


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR