[UNIX][awk] afficher en ignorant les MAJ/MIN
Résolu
Karamurat
Messages postés
45
Statut
Membre
-
Karamurat Messages postés 45 Statut Membre -
Karamurat Messages postés 45 Statut Membre -
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 ;)
A voir également:
- [UNIX][awk] afficher en ignorant les MAJ/MIN
- Maj en min - Guide
- È maj - Guide
- Maj chrome - Accueil - Applications & Logiciels
- Maj windows 10 - Accueil - Mise à jour
- Afficher appdata - Guide
5 réponses
Salut,
c'est toujours i
c'est toujours i
lami20j@deb:~$ echo Test | awk '/test/{print}'
lami20j@deb:~$ echo Test | awk '/test/i{print}'
Test
hmm...
Comment pourai-je l'intégrer dans ce sript , pour qu'il ignore si "lawson" soit en Min/Maj :
sachant que mon fichier d'entrer peut etre ceci :
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 :
La dernière permet de travailler en minuscules sur le reste du script awk, mais on perd les majuscules du teste traité.
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 ?
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
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]$;-))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