![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Reguliere Expressies HELP - PERL | maxmave | UNIX voor Dummies Questions & Answers | 1 | 06-04-2008 01:15 PM |
| reguliere expressies | jack1981 | Programmeren en Shell Scripting | 4 | 07-12-2006 04:10 PM |
| Reguliere Expressies | sandeep_hi | Programmeren en Shell Scripting | 6 | 06-12-2006 03:12 |
| Perl reguliere expressies ... | DrRo183 | Programmeren en Shell Scripting | 1 | 04-26-2006 10:28 PM |
| Reguliere expressies in sed | mfreemantle | UNIX voor Dummies Questions & Answers | 3 | 02-11-2002 09:34 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Reguliere Expressies HELP - PERL
Hallo, Code:
$line=USING (FILE '/TEST1/FILENAME'5000) Ik wil reterive de waarde tussen 'en) die is 5000 hier. Ik heb geprobeerd de volgende uitdrukkingen ... Type 1: $ var1 \u003d "sed -e "s / .* \" / / '-e' s \ ).*$/' $ line "; Type 2: $ var1 \u003d `echo $ line | awk-F" \ ' "' (print $ 2) '| awk-F" \ \) "' (print $ 1) '`; Type 3: $ var1 \u003d `echo $ line | sed 's / .* \ "/ /' | sed 's / \ ).*$//'`; Type 4: $ var1 \u003d `echo $ line | sed 's / .* \ "/ /' | sed 's / \ )$//'`; Type 5: $ var1 \u003d `echo $ line | sed 's / .* Bestand / /' | sed 's / Sluiting .*$//'`; Type 6: $ var1 \u003d `echo $ line | sed 's / "/ / g' | sed 's / \) / / g' | awk-F "\ '"' (print $ 2) ' `; Type 7: $ var1 \u003d "sed 's / .*' \ (.* \ )).*/ \ 1 / '$ line "; maar er wordt niets uit te werken, ik ben altijd om een fout te zeggen dat Code:
sh: -c: line 0: syntax error near unexpected token `('
Suggesties zullen helpen Bedankt Rahul Laatst bewerkt door Yogesh Sawant; op 06.05.2008 04:56.. Reden: code tags toegevoegd |
|
||||
|
Of, ten slotte, met Perl: Code:
if ($line =~ m/'(\d+)\)/) { $Var1=$1 }
De reden dat je krijgt syntax fouten is dat backticks in Perl zal ondergaan wat de documentatie noemt "double-quotish" expansie. In principe betekent dit dat als je een backslash wilt worden doorgegeven aan het reservoir, moet u het dubbele, omdat Perl al ontleedt een niveau van backslashes. Ook de waarde van de $ lijn wordt door interpolatie PerlDus de shell ziet de letterlijke waarde GEBRUIK echo (FILE '/ TEST1/FILENAME '5000) zonder enige citeren, en klaagt over de opening haakjes. U kunt deze met de juiste citeren, maar natuurlijk ook voor triviale string manipulaties, Perl zelf is eigenlijk veel beter geschikt dan de schelp. |
![]() |
| Bladwijzers |
| Labels |
| regex, reguliere expressies |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|