![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| UNIX voor Dummies Questions & Answers Als u niet zeker weet waar je een Unix-of Linux vraag, post het hier. Alle UNIX-en Linux beginners van harte welkom!! |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Vraag over Regular Expression | Katkota | UNIX voor Dummies Questions & Answers | 14 | 05-18-2008 05:11 PM |
| vraag (reguliere expressie gerelateerde) | metalwarrior | UNIX voor Dummies Questions & Answers | 1 | 02-03-2008 11:51 PM |
| Reguliere expressie vraag | umen | Programmeren en Shell Scripting | 7 | 11-21-2007 09:45 PM |
| Regular Expression Vraag | Krispy | UNIX voor Dummies Questions & Answers | 3 | 01-20-2006 10:36 |
| vraag over reguliere expressies | brentdeback | Programmeren en Shell Scripting | 0 | 11-14-2005 04:04 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Mensen;
Ik heb 3 vragen en eventuele hulp bij hen zou echt gewaardeerd: Als ik een lijst met mappen, bijvoorbeeld: / 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 Nu, mijn vragen zijn: 1. Hoe gebruik RE om het laatste bestand zoals "examin en stat ,..."? 2. Hoe gebruik RE om de bovenliggende directory voor het laatste bestand. zoals "amdat, amdat2, im_2 ,..."? 3. Hoe gebruik RE om de datum in het midden "2007/4/6"? |
|
||||
|
Hebben we het Perl of grep of iets anders hier? Er zijn veel verschillende smaken regex en de bijbehorende strategie zou ook afhangen van wat de infrastructuur is beschikbaar in het hulpprogramma.
Voor Perl, Zoiets als m% / (\ d (4) / \ d (1,2) / \ d (1,2)) / \ d +/([^/]+)/([^/]+)$% zou krijgen substrings je verzoek tot $ 3, $ 2 en $ 1, respectievelijk. Laatst gewijzigd door tijdperk; op 05.14.2008 02:58 PM.. Reden: Voeg m %...% wrapper |
|
||||
|
grep normaal rendement het hele bijpassende lijn toch.
De reguliere expressie moet werken met grep als zodanig, als je een paar kleine vervangingen. \ d is een Perlism, te vervangen met [0-9]. (4) is een egrep-ism, hoewel POSIX grep heeft in wat voor vorm ook (misschien met backslashes voor de bretels), of u kunt alleen het vereiste aantal herhalingen. U zal moeilijk worden ingedrukt om te zoeken naar een situatie waar u precies alleen de benodigde onderdelen uit grep, hoewel. [0-9] [0-9] [0-9] [0-9] / [0-9] [0-9] / [0-9] [0-9] en [^/]*$ zal nog werk, maar de voorlaatste directory Ik denk niet dat je kunt krijgen zonder dat door sed of een dergelijke. |
|
||||
|
Als ook de laatste directory component goed is aanvaardbaar dan kun je doen [^/]*/[^/]*$ om de laatste en de voorlaatste directory (# 1 en een half # 2) en vervolgens als u trim # 1 en de laatste schuine streep, krijg je het echte antwoord op # 2.
*? is zeker niet een gewoon oud grep reguliere expressie. Wat is het punt van deze oefening? |
![]() |
| Bladwijzers |
| Labels |
| awk, awk trim, grep of, perl, Perl regex, regex, trim, trim awk |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|