[UNIX][awk] afficher en ignorant les MAJ/MIN

Résolu/Fermé
Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 - 12 août 2007 à 09:30
Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 - 13 août 2007 à 09:12
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")
grep -i "^lawsoncompanyI" > cieI 
grep -i "^lawsoncompanyF" > cieF 


Merci d'avance ;)
A voir également:

5 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
12 août 2007 à 09:47
Salut,

c'est toujours i
lami20j@deb:~$ echo Test | awk '/test/{print}'
lami20j@deb:~$ echo Test | awk '/test/i{print}'
Test
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
12 août 2007 à 10:03
Salut lami20j,

Désolé de te contrarier, mais c'est raté sur ce coup là ;-((
[tmpfs]$ echo Test | awk '/lamy20j/i{print}'
Test
Par 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]$ 
;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
12 août 2007 à 10:23
Salut,

Désolé de te contrarier, mais c'est raté sur ce coup là ;-((

Non, tu ne me contraries pas.
Au contraire j'ai appris encore une chose que je ne savais pas.

Merci.

Karamurat voici un lien qui pourra être utile Regexp - The GNU Awk User's Guide
0
Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 2
12 août 2007 à 10:48
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
0
Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 2
13 août 2007 à 07:19
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é.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
13 août 2007 à 09:06
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]$
;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 2
13 août 2007 à 09:12
{^_'} Impeccable !! {^_^}
0