![]() |
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| UNIX pour les nuls Questions et réponses Si vous ne savez pas où poster un UNIX ou Linux question, post it here. Tous les systèmes UNIX et Linux, débutants bienvenus! |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| Question sur les expressions régulières | Katkota | UNIX pour les nuls Questions et réponses | 14 | 05-18-2008 05:11 PM |
| question (expression régulière connexes) | metalwarrior | UNIX pour les nuls Questions et réponses | 1 | 02-03-2008 11:51 PM |
| Expression régulière question | umen | De programmation et de script Shell | 7 | 11-21-2007 09:45 PM |
| Regular Expression question | Krispy | UNIX pour les nuls Questions et réponses | 3 | 01-20-2006 10:36 AM |
| question sur les expressions régulières | brentdeback | De programmation et de script Shell | 0 | 11-14-2005 04:04 PM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Folks;
J'ai 3 questions et une aide serait vraiment apprécié: Si j'ai une liste de répertoires, par exemple: / fs/pas/2007/4/6/2634210/admdat/examin / fs/pas/2007/4/6/2634210/admdat2/stat / fs/pas/2007/4/6/2634210/admdat3/data / fs/pas/2007/4/6/2634210/im_2/0b.dcm Maintenant, mes questions sont les suivantes: 1. Comment utiliser la RE pour extraire le dernier fichier comme "examen et stat ,..."? 2. Comment utiliser la RE pour extraire le répertoire parent pour le dernier fichier. tels que "amdat, amdat2, im_2 ,..."? 3. Comment utiliser la RE pour extraire la date dans le milieu »2007/4/6"? |
|
||||
|
S'agit-il Perl ou grep ou quelque chose d'autre ici? Il existe différentes saveurs et les regex matching stratégie dépend aussi de ce que l'infrastructure est disponible dans l'outil.
Pour Perl, Quelque chose comme % m / (\ d (4) / \ d (1,2) / \ d (1,2)) / \ d +/([^/]+)/([^/]+)$% serait sous-vous la demande en $ 3, $ 2, et de 1 $, respectivement. Dernière édition par époque au 05.14.2008 02:58 PM.. Motif: Ajout m %...% wrapper |
|
||||
|
grep retourne normalement l'ensemble correspondant à la ligne de toute façon.
L'expression devrait travailler avec grep en tant que telle, si vous faites quelques substitutions. \ d est un Perlism, remplacer par [0-9]. (4) est une egrep-isme, mais POSIX grep, il est dans une forme aussi (peut-être avec les anti-slash avant les accolades), ou vous pouvez simplement mettre le nombre de répétitions. Il vous sera difficile de trouver une situation où vous pouvez obtenir exactement que les pièces requises à grep, mais. [0-9] [0-9] [0-9] [0-9] / [0-9] [0-9] / [0-9] [0-9], et sera [^/]*$ encore du travail, mais l'avant-dernier répertoire, je ne pense pas que vous pouvez obtenir, sans passer par sed ou autre. |
|
||||
|
Si le dernier répertoire composant ainsi est acceptable, alors vous pouvez faire [^/]*/[^/]*$ pour obtenir le dernier et l'avant-dernier répertoire (# 1 et la moitié # 2) et ensuite si vous coupez # 1 et le dernier slash, vous obtenez la vraie réponse pour # 2.
*? n'est certainement pas un bon vieux grep expression régulière. Quel est le point de cet exercice? |
![]() |
| Bookmarks |
| Tags |
| awk, awk trim, grep ou, perl, perl regex, regex, trim, trim awk |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|