bonjour
j' était entrain de faire un exercice et j'ai pas bien compris la solution d'une commande :
merci d'avance
bonjour
j' était entrain de faire un exercice et j'ai pas bien compris la solution d'une commande :
merci d'avance
C'est pour rejeter les lignes qui commenceraient par le séparateur :.
[^0-9]* signifie : un nombre indéfini de caractères non numériques, y compris aucun.
En ajoutant [^0-9] devant, l'expression devient : au moins un caractère non numérique.
Je suppose que tu apprendras le quantificateur + dans un exercice suivant
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
merci bien !
des sources français (gratuit ) pour bien maîtriser ces commandes de base ?
une dernière petite questionne :
quelle est la différence entre "*[^0-9]" et "[^0-9]*" ?
salut,
la première correspond plutôt à du globbing à mon avis, elle signifie "zéro ou plusieurs caractère(s) suivi(s) (le dernier caractère donc) d'un caractère qui n'est pas un chiffre"
la deuxième pourrait passer pour une expression rationnelle mais dans le contexte du globbing elle signifie "le premier caractère n'est pas un chiffre, suivi de zéro ou plus autres caractères quelconques"
note que ça n'a rien à voir avec les expressions qu'utilise grep, ici il s'agit de globbing effectué par le shell directement, la syntaxe *[^0-9] ne fonctionne pas avec grep qui utilise des expressions rationnelles (regular expressions, regexp) et même de plusieurs sortes (basiques, étendues et compatibles Perl, donc oui je te confirme : c'est un peu le bordel )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 # ls * _123_ 1234a 123abc 1abcde a1234 a1b2c3 ~abc~ abc123 abcde1 # ls *[^0-9] _123_ 1234a 123abc 1abcde ~abc~ # ls [^0-9]* _123_ a1234 a1b2c3 ~abc~ abc123 abcde1
(les switches -G, -E, -P permettent d'utiliser les regex basiques, étendues et PCRE, l'option --color=always met de la couleur sur ce qui matche réellement (perdue avec le copier/coller), xargs permet d'afficher tout sur une seule ligne)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 # ls | grep -G "*[^0-9]" --color=always | xargs # ls | grep -E "*[^0-9]" --color=always | xargs _123_ 1234a 123abc 1abcde a1234 a1b2c3 ~abc~ abc123 abcde1 # ls | grep -P "*[^0-9]" --color=always | xargs /bin/grep: nothing to repeat # ls | grep -G "[^0-9]*" --color=always | xargs _123_ 1234a 123abc 1abcde a1234 a1b2c3 ~abc~ abc123 abcde1 # ls | grep -E "[^0-9]*" --color=always | xargs _123_ 1234a 123abc 1abcde a1234 a1b2c3 ~abc~ abc123 abcde1 # ls | grep -P "[^0-9]*" --color=always | xargs _123_ 1234a 123abc 1abcde a1234 a1b2c3 ~abc~ abc123 abcde1
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager