[UNIX][awk] afficher en ignorant les MAJ/MIN
Résolu
Karamurat
Messages postés
42
Date d'inscription
Statut
Membre
Dernière intervention
-
Karamurat Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
Karamurat Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
Bonjour
je chechre la commande permettant dans "awk" d'ignorer les majuscules/miniscules ,
je sais que la commande "grep" le fait avec l'option -i
je cherche donc l'alternative de l'option -i de "grep" pour la commande "awk"
(man de grep avec l'option -i :Ignore uppercase/lowercase distinctions during comparisons.)
ex: (avec "grep")
Merci d'avance ;)
je chechre la commande permettant dans "awk" d'ignorer les majuscules/miniscules ,
je sais que la commande "grep" le fait avec l'option -i
je cherche donc l'alternative de l'option -i de "grep" pour la commande "awk"
(man de grep avec l'option -i :Ignore uppercase/lowercase distinctions during comparisons.)
ex: (avec "grep")
grep -i "^lawsoncompanyI" > cieI grep -i "^lawsoncompanyF" > cieF
Merci d'avance ;)
Configuration: Windows XP Firefox 2.0.0.6
5 réponses
-
Salut,
c'est toujours ilami20j@deb:~$ echo Test | awk '/test/{print}' lami20j@deb:~$ echo Test | awk '/test/i{print}' Test-
Salut lami20j,
Désolé de te contrarier, mais c'est raté sur ce coup là ;-(([tmpfs]$ echo Test | awk '/lamy20j/i{print}' TestPar contre en redéfinissant la variable "IGNORECASE" à la valeur "1" (par défaut à 0)ça roule :[tmpfs]$ cat plop je chechre la commande permettant dans "awk" d'ignorer les majuscules/miniscules , je sais que la commande "grep" le fait avec l'option -i je cherche donc l'alternative de l'option -i de "grep" pour la commande "awk" (man de grep avec l'option -i :Ignore uppercase/lowercase distinctions during comparisons.) ex: (avec "GreP") grep -i "^lawsoncompanyI" > cieI grep -i "^lawsoncompanyF" > cieF [tmpfs]$ awk '/grep/ { print $0}' plop je sais que la commande "grep" le fait avec l'option -i je cherche donc l'alternative de l'option -i de "grep" pour la commande "awk" (man de grep avec l'option -i :Ignore uppercase/lowercase distinctions during comparisons.) grep -i "^lawsoncompanyI" > cieI grep -i "^lawsoncompanyF" > cieF [tmpfs]$ awk 'BEGIN { IGNORECASE = 1 } /grep/ { print $0}' plop je sais que la commande "grep" le fait avec l'option -i je cherche donc l'alternative de l'option -i de "grep" pour la commande "awk" (man de grep avec l'option -i :Ignore uppercase/lowercase distinctions during comparisons.) ex: (avec "GreP") grep -i "^lawsoncompanyI" > cieI grep -i "^lawsoncompanyF" > cieF [tmpfs]$;-))
-
-
hmm...
Comment pourai-je l'intégrer dans ce sript , pour qu'il ignore si "lawson" soit en Min/Maj :
MODULE_LIST="AM AP AR BL" for MODULE in $MODULE_LIST do awk -F " " ' BEGIN{comp=0} /^law.*I/ {full="" } # Inquiry access /^law.*F/ {full="1"} # Full access /^lawson.*: [0-9][0-9]*$/{ x=++comp - 1 if(x) s=sprintf("%d",x) else s="" printf("\"%s-%s\",\"%s\",\"%s\",%s,%s,%s,\" !\",\"~~~~~~~~~~~~~~~\",%s\n", ROLE, LEVEL, DB, MODULE, s, $2, $2, full)} /^lawson.*: [0-9][0-9]*-[0-9][0-9]*$/{ x=++comp - 1 if(x) s=sprintf("%d",x) else s="" printf("\"%s-%s\",\"%s\",\"%s\",%s,%s,%s,\" !\",\"~~~~~~~~~~~~~~~\",%s\n", ROLE, LEVEL, DB, MODULE, s,substr($2,1,match($2,"-")-1), substr($2,match($2,"-")+1,4), full)} ' ROLE=TAXMNG LEVEL=NO DB=LOP1 MODULE=$MODULE < comp_4.txt done
sachant que mon fichier d'entrer peut etre ceci :
lawsoncompanyF: 2 LawsoncompanyF: 4-5 lawsoncompanyf: 7-9 lawsoncompanyF: 12 lawsoncompanyF: 15-18 lawsoncompanyF: 20 lawsonCompanyF: 23-24 Lawsoncompanyf: 29 lawsoncompanyF: 32-34 lawsoncompanyF: 38 lawsoncoMpanyF: 41 LawsoncompanyF: 43-44 lawsoncompanyF: 4666-4766
-
hmm... la manip plus haut avec "IGNORECASE" ne fonctionne pas , il semblerai qu'elle est une extension spécifique de Gnu AWK, et comme je suis en ksh ... IGNORCEASE ne fonctionne pas en ksh .
j'ai donc utiliser tolower
plusieurs choix possibles :
/^[lL][aA][wW].*I/ { ...
tolower($0) ~ /^law.*i/ { ...
{ $0 = tolower($0) } /^law.*i/ {... ...
La dernière permet de travailler en minuscules sur le reste du script awk, mais on perd les majuscules du teste traité. -
Salut,
Et comme ça, ça le fait pas ?[tmpfs]$ cat plop lawsoncompanyF: 2 LawsoncompanyF: 4-5 lawsoncompanyf: 7-9 lawsoncompanyI: 12 lawsoncompanyF: 15-18 lawsoncompanyi: 20 lawsonCompanyF: 23-24 Lawsoncompanyf: 29 lawsoncompanyi: 32-34 lawsoncompanyF: 38 lawsoncoMpanyF: 41 LawsoncompanyI: 43-44 lawsoncompanyF: 4666-4766 [tmpfs]$ awk 'tolower($1) ~ /^lawsoncompany[fi]/ {print $0 }' plop lawsoncompanyF: 2 LawsoncompanyF: 4-5 lawsoncompanyf: 7-9 lawsoncompanyI: 12 lawsoncompanyF: 15-18 lawsoncompanyi: 20 lawsonCompanyF: 23-24 Lawsoncompanyf: 29 lawsoncompanyi: 32-34 lawsoncompanyF: 38 lawsoncoMpanyF: 41 LawsoncompanyI: 43-44 lawsoncompanyF: 4666-4766 [tmpfs]$;-))
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
{^_'} Impeccable !! {^_^}