![]() |
|
|
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 |
| Als u nieuwe lijn karakter | shihabvk | UNIX for Advanced & Expert Gebruikers | 7 | 06-18-2009 08:44 |
| bash terwijl lezen hoe te verwijderen \ n karakter | papasj | Programmeren en Shell Scripting | 3 | 05-25-2009 10:24 PM |
| Verwijder laatste teken van een term | Raynon | Programmeren en Shell Scripting | 6 | 03-20-2008 06:04 |
| Probeert te verwijderen enkel teken van een lijn | Iz3k34l | UNIX voor Dummies Questions & Answers | 5 | 07-07-2007 02:29 PM |
| Verwijder laatste teken van Line | danhodges99 | Programmeren en Shell Scripting | 4 | 05-21-2003 10:30 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Hoi,
Ik probeer de server load vangen en mij e-mail automatisch. Dit is hoe het gaat svrload \u003d `uptime | awk '(print $ 11)'` Nu is dit een waarde teruggeeft zeggen "1,39,". Hoe kan ik de strip "," van de geretourneerde waarde en dit omzetten in een geheel getal te vergelijken met een drempel? Bedankt Murali |
|
||||
|
You're welcome. Er zijn vele manieren om dit te doen.
Hier is de uitleg: echo "1.39," | perl -pe 's /.$//' perl -ie Dit vraagt perl. De "p" oorzaken Perl om door de inbreng in de productie, al dan niet wordt gewijzigd langs de weg. De "e" geeft aan Perl dat de uitdrukking (code) komt de volgende. De uitdrukking is een eenvoudige regex vervanging. De periode staat voor een willekeurig teken, en de dollar teken betekent 'einde van de regel. " Dus deze reguliere expressie elk teken op het einde van de lijn. Het tweede deel van de reguliere expressie was leeg, dus als het eerste deel wedstrijden, het is vervangen door niets. Hier is een meer uitgebreide reguliere expressie, in Perl syntaxis, net FYI. $ line \u003d ~ s / fred $ / Barney /; Hier, ik vervangen "Fred" aan het einde van de regel met "Barney". Op kortere voorbeeld, wilde ik iets op te heffen, dus er was niets tussen de laatste twee forward-slashes. Ook heb ik geen gebruik van de "variabele \u003d ~" syntax, omdat in een Perl one-liner de lijn van de ingang is aangenomen door Perl. Het kan ook expliciet worden aangeduid met de $ _. Dus deze twee zijn identiek: echo "1.39," | perl -pe 's /.$//' echo "1.39," | perl -pe '$ _ \u003d ~ s /.$//' Ten slotte is de "\u003d ~" syntax sets $ _ om het resultaat van het uitvoeren van de reguliere expressie vervanging op. In de kortere versie die impliciet aanwezig is, en Perl begrijpt. ShawnMilo |
|
||||
|
Ik geef de voorkeur Python, maar je kunt niet verslaan Perl one-liners voor het doen van vrij ingewikkelde dingen in een script of op de opdrachtregel.
Het meeste van wat ik moest uitleggen was boven reguliere expressie syntax, dat is een heel andere bal van was. Laat je niet afschrikken regexes je weg van Perl. I highly recommend boek Jeffrey Friedl's "Mastering Regular Expressions." Ik denk dat de huidige editie is de derde. Lees de eerste 80 pagina's of zo en je zult een regex champ. ShawnMilo |
![]() |
| Bladwijzers |
| Labels |
| perl, Perl regex, regex, reguliere expressies |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|