![]() |
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.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
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 |
|
||||
|
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 |
|
||||
|
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 |
![]() |
| Komihåglista |
| Taggar |
| perl, perl regex, regex, reguljära uttryck |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|