The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies Frågor & Svar
.
google unix.com



UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna!

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Om du vill ta bort ny rad tecken shihabvk UNIX för avancerade & Expertanvändare 7 06-18-2009 08:44
bash samtidigt läsa hur du tar bort \ n karaktär papasj Shell-programmering och Skript 3 05-25-2009 10:24
Ta bort sista tecknet i en sikt Raynon Shell-programmering och Skript 6 03-20-2008 06:04
Försöker att ta bort enstaka tecken från en linje Iz3k34l UNIX for Dummies Frågor & Svar 5 07-07-2007 02:29
Ta bort sista tecknet i Line danhodges99 Shell-programmering och Skript 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 Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 03-11-2008
vsmurali vsmurali is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 5
Question Ta bort ovidkommande karaktär

Hej,

Jag försöker fånga serverlastbalansering och maila mig automatiskt.

Detta är hur det går

svrload \u003d `uptime | awk '(print $ 11)'`

Nu denna returnerar ett värde säga "1,39".

Hur remsa jag "," från de returnerade värde och omvandla detta till ett heltal för att jämföra med en tröskel?

Tack
Murali
  #2 (permalänk)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Registered User
  
 

Join Date: juni 2006
Inlägg: 252
Att skala bort det sista tecknet:

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

Output: 1.39



Om du bara vill strippa ett kommatecken och ignorera allt annat, ersätta den period som regex med ett kommatecken.

ShawnMilo
  #3 (permalänk)  
Old 03-11-2008
vsmurali vsmurali is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 5
Thumbs up

Awesome, it works. Tack själv mycket.

Kan du pls ge en liten förklaring på detta?

Är detta det enda sättet att göra det (eller) är det något annat sätt också?

Skulle det vara möjligt att runda numret också?

Tack
Murali
  #4 (permalänk)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Registered User
  
 

Join Date: juni 2006
Inlägg: 252
You're welcome. Det finns många sätt att göra detta.

Här är förklaringen:

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

perl -pe
Detta kräver perl. "P" orsaker Perl att passera genom bidrag till produktionen, oavsett om det ändras på vägen. "E" anger att Perl att uttrycket (kod) kommer härnäst.

Uttrycket är en enkel regex substitution. Den tid som står för alla tecken, och dollarn tecknet betyder "slutet på raden." Så här reguljära uttryck matchar alla tecken i slutet av raden. Den andra delen av det reguljära uttrycket lämnades tomt, så om den första delen matcherna, det är ersatt med ingenting.

Här är en mer detaljerad reguljära uttryck, i Perl syntax, just FYI.

$ line \u003d ~ s / Fred $ / Barney /;

Här, jag ersätta "Fred" i slutet av raden med "Barney". I det kortare exempel ville jag bort någonting, så det fanns ingenting mellan de två sista fram-snedstreck. Dessutom har jag inte använda "variabel \u003d ~" syntax, eftersom en Perl one-liner linjen för ingående övertar Perl. Det kan också uttryckligen anges med $ _.

Dessa två är identiska:

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

echo "1.39" | perl -pe '$ _ \u003d ~ s /.$//'

Slutligen fastställer "\u003d ~" syntax $ _ till följd av att köra det vanliga uttrycket substitution på det. I den kortare versionen som är underförstådd, och Perl förstår det.

ShawnMilo
  #5 (permalänk)  
Old 03-11-2008
vsmurali vsmurali is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 5
Smile

sval.

Tack för en utförlig förklaring.

Jag har alltid velat lära perl språk men aldrig fick runt den.

Tack

Murali
  #6 (permalänk)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Registered User
  
 

Join Date: juni 2006
Inlägg: 252
Jag föredrar Python, men du kan inte slå Perl one-liners för att göra ganska komplicerade saker på ett skript eller på kommandoraden.

Det mesta av vad jag hade att förklara ovan var reguljärt uttryck syntax, vilket är en helt annan boll av vax. Låt inte regexes skrämma dig bort från Perl.

Jag rekommenderar starkt Jeffrey Friedl bok "Mastering Regular Expressions." Jag tror att den aktuella upplagan är den tredje. Läs den första 80-tal sidor och du blir en regex mästaren.

ShawnMilo
Closed Thread

Komihåglista

Taggar
perl, perl regex, regex, reguljära uttryck

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 02:34.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0