The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > UNIX for Dummies Spørsmål og svar
.
google unix.com



UNIX for Dummies Spørsmål og svar Hvis du er usikker på hvor du skal legge inn en UNIX-eller Linux-spørsmålet, legger den her. Alle UNIX og Linux newbies velkommen!

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Slik fjerner nye tegn shihabvk UNIX for Advanced & ekspertbrukere 7 06-18-2009 08:44
bash mens lese hvordan du fjerner \ n tegn papasj Shell programmering og Skripting 3 05-25-2009 10:24
Fjern siste tegnet av et uttrykk Raynon Shell programmering og Skripting 6 03-20-2008 06:04
Prøver å fjerne enkelt tegn fra en linje Iz3k34l UNIX for Dummies Spørsmål og svar 5 07-07-2007 02:29
Fjern siste tegnet av Line danhodges99 Shell programmering og Skripting 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 denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 03-11-2008
vsmurali vsmurali is offline
Registrert bruker
  
 

Bli Date: Mar 2008
Innlegg: 5
Question Slik fjerner unødvendig tegn

Hei,

Jeg prøver å fange lasten på tjeneren og email meg automatisk.

Dette er hvordan det går

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

Nå er denne returnerer en verdi si "1.39".

Hvordan stripe jeg "," fra den returnerte verdien og konvertere dette til et helt tall å sammenligne med en terskel?

Takk
Murali
  #2 (permalink)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Registrert bruker
  
 

Bli Dato: juni 2006
Innlegg: 252
Å kle av det siste tegnet:

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

Output: 1.39



Hvis du bare vil kle av et komma, og ignorere alt annet, erstatte den perioden som regex med komma.

ShawnMilo
  #3 (permalink)  
Old 03-11-2008
vsmurali vsmurali is offline
Registrert bruker
  
 

Bli Date: Mar 2008
Innlegg: 5
Thumbs up

Awesome, det fungerer. Takk mye.

Kan du pls gi en liten forklaring på dette?

Er dette den eneste måten å gjøre det (eller) er det andre veien også?

Ville det være mulig å runde tallet også?

Takk
Murali
  #4 (permalink)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Registrert bruker
  
 

Bli Dato: juni 2006
Innlegg: 252
You're welcome. Det er mange måter å gjøre dette.

Her er forklaringen:

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

perl -pe
Dette krever perl. "P" årsaker Perl til å passere gjennom innspill til utgang, om det er endret underveis. Den "e" viser til Perl at uttrykket (kode) kommer etterpå.

Uttrykket er en enkel regex substitusjon. Perioden står for alle tegn, og dollartegn betyr «slutten av linjen." Så dette regulært uttrykk matcher alle tegn på slutten av linjen. Den andre delen av regulære uttrykk var tomme, så hvis den første delen kamper, det er erstattet med ingenting.

Her er en mer detaljert regulære uttrykk, Perl syntaks, bare FYI.

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

Her jeg erstatte "Fred" på slutten av linjen med "Barney". På kortere eksempel, ønsket jeg å fjerne noe, så det var ingenting mellom de to siste forward-skråstreker. Også ville jeg ikke bruke "variabel \u003d ~" syntaks, fordi i en Perl one-liner linje av inndata er lagt til grunn ved Perl. Det kan også være eksplisitt nevnt med $ _.

Så disse to er identiske:

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

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

Til slutt setter "\u003d ~" syntaks $ _ til resultatet av å kjøre det vanlige uttrykket substitusjon på det. I den kortere versjonen som er implisitt, og Perl forstår det.

ShawnMilo
  #5 (permalink)  
Old 03-11-2008
vsmurali vsmurali is offline
Registrert bruker
  
 

Bli Date: Mar 2008
Innlegg: 5
Smile

kjølig.

Takk for en detaljert forklaring.

Jeg har alltid ønsket å lære perl språk, men kom aldri så det.

Takk

Murali
  #6 (permalink)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Registrert bruker
  
 

Bli Dato: juni 2006
Innlegg: 252
Jeg foretrekker Python, men du kan ikke slå Perl one-liners for å gjøre ganske komplisert ting i et skript eller på kommandolinjen.

Det meste av det jeg hadde å forklare ovenfor var vanlig uttrykk syntaksen, som er en helt annen ball av voks. Ikke la regexes skremme deg bort fra Perl.

Jeg anbefaler Jeffrey Friedl's bok "Mastering Regular Expressions". Jeg tror den nåværende utgaven er den tredje. Les de første 80 eller så sidene og du vil bli en regex mester.

ShawnMilo
Closed Thread

Hugseliste

Tags
perl, perl regex, regex, regeluttrykk

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 06:22.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0