The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > UNIX for dummyer Spørgsmål & svar
.
google unix.com



UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen!

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
At fjerne ny linje karakter shihabvk UNIX for Advanced & Ekspertsøgning Brugere 7 06-18-2009 07:44 AM
bash, mens læse, hvordan du fjerner \ n karakter papasj Shell Programmering og Scripting 3 05-25-2009 09:24 PM
Fjern sidste tegn i en periode Raynon Shell Programmering og Scripting 6 03-20-2008 06:04 AM
Forsøger at fjerne en enkelt karakter fra en linje Iz3k34l UNIX for dummyer Spørgsmål & svar 5 07-07-2007 01:29 PM
Fjern sidste tegn i Line danhodges99 Shell Programmering og Scripting 4 05-21-2003 09:30 AM

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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 03-11-2008
vsmurali vsmurali is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 5
Question Sådan fjernes uvedkommende karakter

Hej,

Jeg forsøger at indfange servertrafikken og email mig automatisk.

Dette er, hvordan det går

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

Nu denne returnerer en værdi sige "1,39".

Hvordan får jeg fratage "," fra den returnerede værdi og konvertere det til et helt tal at sammenligne med en tærskel?

Tak
Murali
  #2 (permalink)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Registreret Bruger
  
 

Join Date: Jun 2006
Stillinger: 252
Til strip off det sidste tegn:

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

Output: 1.39



Hvis du kun ønsker at strimmel ud et komma og ignorere alt andet, erstatte den periode, at regex med et komma.

ShawnMilo
  #3 (permalink)  
Old 03-11-2008
vsmurali vsmurali is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 5
Thumbs up

Awesome, det virker. Tak mange.

Kan du pls give en lille forklaring på dette?

Er dette den eneste måde at gøre det (eller) er der nogen anden måde også?

Ville det være muligt at runde det antal også?

Tak
Murali
  #4 (permalink)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Registreret Bruger
  
 

Join Date: Jun 2006
Stillinger: 252
Du er velkommen. Der er mange måder at gøre dette.

Her er forklaringen:

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

perl -pe
Dette kræver perl. Den "p" årsager Perl til at passere gennem input til output, uanset om det er ændret undervejs. "E" angiver, at Perl at udtrykket (kode) kommer næste.

Udtrykket er en simpel regex substitution. Den periode, står for ethvert tegn, og dollar-tegn betyder "slutningen af linjen." Så dette regulære udtryk matcher et vilkårligt tegn i slutningen af linjen. Den anden del af det regulære udtryk var tomme, så hvis den første del kampe, det er erstattet af ingenting.

Her er en mere detaljeret regulært udtryk, i Perl syntaks, bare FYI.

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

Her, jeg erstatte "fred" i slutningen af den linje med "barney". På kortere eksempel, jeg ønskede at fjerne noget, så der var noget mellem de to sidste frem-skråstreger. Også har jeg ikke bruge "variabel \u003d ~" syntaks, fordi i en Perl one-liner i linje med input antages af Perl. Det kan også være udtrykkeligt nævnt med $ _.

Så disse to er identiske:

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

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

Endelig "\u003d ~" syntaks sæt $ _ til resultatet af driften af regulære udtryk substitution på det. På kortere version, der er implicit, og Perl forstår det.

ShawnMilo
  #5 (permalink)  
Old 03-11-2008
vsmurali vsmurali is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 5
Smile

kølig.

Tak for en detaljeret forklaring.

Jeg har altid ønsket at lære perl sprog, men aldrig fik det.

Tak

Murali
  #6 (permalink)  
Old 03-11-2008
ShawnMilo ShawnMilo is offline
Registreret Bruger
  
 

Join Date: Jun 2006
Stillinger: 252
Jeg foretrækker Python, men du kan ikke slå Perl one-liners til at gøre temmelig kompliceret tingene i et script eller på kommandolinjen.

Det meste af, hvad jeg havde at forklare ovenfor var regulære udtryk syntaks, som er en helt anden kugle af voks. Lad ikke regexes skræmme dig væk fra Perl.

Jeg kan varmt anbefale Jeffrey Friedl's bog "Mastering Regular Expressions." Jeg tror, den aktuelle udgave er den tredje. Læs de første godt 80 sider, og du vil blive en regex champ.

ShawnMilo
Closed Thread

Bogmærker

Tags
perl, perl regex, regex, regulære udtryk

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 05:28 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0