Flux rss
Rechercher : dans
Par :

Cherche une commande unix

Littlenico, le jeudi 26 octobre 2006 à 18:18:35 
 Signaler ce message aux modérateurs

Bonjour. comment puis-je afficher à l'aide de la commande grep et ls (et donc un pipe) tous les fichier contenant exactement 2 lettres "m" et n'importes quel nombre de caractères ?
merci

Configuration: ubuntu 6.06

1

lami20j, le jeudi 26 octobre 2006 à 19:02:32
  • +1

Salut,

je ne suis pas sur si j'ai bien saisie. C'est ça que tu veux?

# ls -l
total 0
-rw-r--r--  1 root root 0 2006-10-26 19:06 aaammbbb
-rw-r--r--  1 root root 0 2006-10-26 18:48 aaammsdkjm
-rw-r--r--  1 root root 0 2006-10-26 18:57 bbmem
-rw-r--r--  1 root root 0 2006-10-26 18:47 madfsdm
-rw-r--r--  1 root root 0 2006-10-26 18:47 mamiemando
-rw-r--r--  1 root root 0 2006-10-26 18:56 mamie.txt
-rw-r--r--  1 root root 0 2006-10-26 18:48 mm
-rw-r--r--  1 root root 0 2006-10-26 18:47 mmdjfk
Les fichiers dont le nom contient seulement 2 m quelque soit leur position
# ls -l * | grep -x '[^m]*m[^m]*m[^m]*'
-rw-r--r--  1 root root   0 2006-10-26 19:06 aaammbbb
-rw-r--r--  1 root root   0 2006-10-26 18:57 bbmem
-rw-r--r--  1 root root   0 2006-10-26 18:47 madfsdm
-rw-r--r--  1 root root   0 2006-10-26 18:56 mamie.txt
-rw-r--r--  1 root root   0 2006-10-26 18:48 mm
-rw-r--r--  1 root root   0 2006-10-26 18:47 mmdjfk
lami20j

Répondre à lami20j

4

 poumiZ, le mardi 5 juin 2007 à 16:51:13

Find . -name "*m*m*"

Répondre à poumiZ

2

Littlenico, le jeudi 26 octobre 2006 à 19:21:06
  • +1

Heu oui c'est parfait. il me manquait juste un " non m". merci

Répondre à Littlenico

3

lami20j, le jeudi 26 octobre 2006 à 20:59:14
  • +1

Re,

il me manquait juste un " non m".

Souvent on n'aboutit pas à nos recherches avec les regex puisque on raisonne mal la regex et pas parce que on ne connaît pas le métacaractères (qui ne sont pas nombreux).

Ta façon de raisonner la regex est un peu fausse, si je n'abuse pas.

non m pour toi correspond à [^m]
suivant ton raisonnement [m] correspond à m

En fait [m] c'est une classe de caractère qui fait correspondre au caractère m, tandis que [^m] c'est une classe de caractère complementée qui fait correspondre à n'importe quel caractère qui n'est pas m (ce qui n'est pas la même chose avec non m qui veut dire que ça peut être un m ou pas)

Le but d'une regex c'est de faire correspondre et pas de ne pas faire correspondre (pour ça on utilise les opérateurs d'un langage de programmation)

En bref [^m] veut dire faire correspondre à tout caractère qui n'est pas m et pas ne pas faire correspondre au caractère m.

Cette subtilité on peut l'expliquer avec un petit exemple

echo "Salut" | egrep 't[^m]
Normalement si on pense à ne pas faire correspondre au caractère m la regex doit réussir. Mais ce n'est pas le cas.
Pourquoi?
Puisque [^m] veut plutôt dire de faire correspondre à quelque chose et dans notre cas t c'est le dernière caractère.

Bonne continuation.

lami20j

Répondre à lami20j
Problème Pro Gamer Command Unit & Vista (Résolu) Salut tout le monde ! Il y a un an de cela (quand je tournais encore sous XP (ce bon vieux XP =P)) j'ai pris possession du PGCU (Pro Gamer Command Unit) de Saitek. Mon PGCU fontionnait parfaitement et je l'utilisais tous les soirs, j'étais très fier... www.commentcamarche.net/forum/affich-4029231-probleme-pro-gamer-command-unit-vista
Commande unix pour copier un dossier salut, quelle est la commande unix pour copier un dossier contenant plusieurs fichiers dans un shell merci d'avance de me répondre A+ www.commentcamarche.net/forum/affich-599275-commande-unix-pour-copier-un-dossier
Commande Unix Salut! Existe-t-il une commande qui te donne direct la date systeme d'un fichier et uniquement la date. Merçi pr l'infos. www.commentcamarche.net/forum/affich-313165-commande-unix
[Shell] Accès aux dernières commandes de l'historiqueLe shell Linux/Unix regorge de fonctionnalités permettant de gagner du temps. Ainsi, il est possible de remonter dans l'historique des dernières commandes grâce aux flèches de navigation en appuyant sur la flèche du haut. Mais il y a moyen... www.commentcamarche.net/faq/sujet-971-shell-acces-aux-dernieres-commandes-de-l-historique
[Linux] Utiliser la commande 'su'Préambule Se connecter sous un autre ID utilisateur avec "su" Démarrer un nouveau shell de connexion avec "su -" Revenir au shell précédent Suspendre le shell du compte root Notes Préambule La commande "su" (Switch User, appelée plus... www.commentcamarche.net/faq/sujet-156-linux-utiliser-la-commande-su
Sed - Conversion retours chariots DOS (CRLF) / UNIX (LF)Conversion format de fichier DOS UNIX / UNIX DOS Préambule Ce qu'il faut savoir Conversion DOS vers UNIX Conversion UNIX vers DOS Préambule Il existe déjà des utilitaires (dos2unix et unix2dos) qui s'acquittent très bien ce cette... www.commentcamarche.net/faq/sujet-5978-sed-conversion-retours-chariots-dos-crlf-unix-lf
Coder une commande Unix en CBonjour, je dois coder la commande traceroute disponible sous unix en utilisant le langage C mais je ne sais pas vraiment comment m'y prendre avec tous les cours qui ont sauté ... Si quelqu'un pouvait m'aider ? Merci www.commentcamarche.net/forum/affich-2174296-coder-une-commande-unix-en-c
Grep unixBonjour à toutes et à tous alors voila je cherche une commande ou une suite de commande (unix) permettant de recherché et d'exclure des chaînes de caractères dans une liste de fichier. Je m'explique plus en détail et j'expose ce que j'ai déjà fait.... www.commentcamarche.net/forum/affich-2040622-grep-unix
Commande unixBonjour ! Quelle est la commande pour afficher la version de l'OS svp ? Merci d'avance... www.commentcamarche.net/forum/affich-919272-commande-unix
Commandes LinuxTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau... www.commentcamarche.net/contents/linux/lincomm.php3
Introduction aux systèmes UNIXLe système UNIX Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs... www.commentcamarche.net/contents/unix/unixintro.php3
Systèmes UNIX - Le shellIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système... www.commentcamarche.net/contents/unix/unix-shell.php3