The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > UNIX voor Dummies Questions & Answers
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-11-2008
vsmurali vsmurali is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posts: 5
Question Het verwijderen van vreemde tekens

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
  #2 (permalink)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Geregistreerde gebruiker
  
 

Join Date: Jun 2006
Posts: 252
Om strip uit het laatste teken:

echo "1.39," | perl -pe 's /.$//'

Output: 1.39



Als u alleen wilt strippen een komma en negeren iets anders, vervangt de periode dat regex met een komma.

ShawnMilo
  #3 (permalink)  
Old 03-11-2008
vsmurali vsmurali is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posts: 5
Thumbs up

Awesome, it works. Thanks much.

Kunt u pls een kleine uitleg over dit?

Is dit de enige manier om het te doen (of) is er een andere manier te?

Zou het mogelijk zijn om het aantal te rond?

Bedankt
Murali
  #4 (permalink)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Geregistreerde gebruiker
  
 

Join Date: Jun 2006
Posts: 252
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
  #5 (permalink)  
Old 03-11-2008
vsmurali vsmurali is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posts: 5
Smile

koel.

Bedankt voor een gedetailleerde uitleg.

Ik wilde altijd al leren perl taal, maar nooit omheen.

Bedankt

Murali
  #6 (permalink)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Geregistreerde gebruiker
  
 

Join Date: Jun 2006
Posts: 252
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
Closed Thread

Bladwijzers

Labels
perl, Perl regex, regex, reguliere expressies

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 08:01.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0