The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
trekke ut numre fra et ord systemali Shell programmering og Skripting 14 03-30-2009 04:47
Pakk numre fra en streng og lagre i variabler davewg Shell programmering og Skripting 6 11-14-2007 05:22
grep for ikke tall shihabvk Shell programmering og Skripting 6 09-20-2005 10:06
grep tall utvalg azmathshaikh Shell programmering og Skripting 1 08-08-2005 08:45

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 08-30-2007
baghera baghera is offline
Registrert bruker
  
 

Bli Dato: Aug 2007
Innlegg: 23
grep eller awk problemet, ikke hente numre

Hei, jeg har problemer med å få noen tall fra en html-fil. Saken er at jeg har mange html-loggene som inneholder linjer som dette:

nerdnerd, how_old_r_u: 45782 <br> GJELDER: <hour_second> Verification Lyktes

Dette er noe av det jeg har hentet fra en html-fil, men alt jeg egentlig vil ha, er tallet i midten. Når du bruker awk jeg får:


how_old_r_u: 45782 <br> GJELDER:

siden det er et mellomrom i hver ende, som et skilletegn for awk.

Og jeg prøvde å bruke grep "[0-9]", men det bare tar hele linjen inneholder nummeret slik at jeg får hele linjen igjen. Er det noen kommando som kan hente tallene bare?
  #2 (permalink)  
Old 08-30-2007
vino's Avatar
Vino vino is offline Forum Staff  
Tilhenger (i Vino Veritas)
  
 

Bli Date: Feb 2005
Beliggenhet: Bangalore, India
Innlegg: 2798
Mønsteret er ikke veldig klar. Men du kan prøve


Code:
grep -oE "[[:digit:]]{1,}" input.txt

Hvis det ikke tilfredsstiller dine krav, kanskje dette.


Code:
sed -n -e "s/.*:\([0-9]*\).*/\1/p" input.txt

  #3 (permalink)  
Old 08-31-2007
baghera baghera is offline
Registrert bruker
  
 

Bli Dato: Aug 2007
Innlegg: 23
Sitat:
Originally Posted by Vino View Post
Mønsteret er ikke veldig klar. Men du kan prøve


Code:
grep -oE "[[:digit:]]{1,}" input.txt

Hvis det ikke tilfredsstiller dine krav, kanskje dette.


Code:
sed -n -e "s/.*:\([0-9]*\).*/\1/p" input.txt
Men hvis det er flere tall på linjen for eksempel:

how_old_r_u: 45782 <br> GJELDER: [30000, t3, t4]: plummet

Det synes når jeg kjører kommandoen


Code:
grep -oE "[[:digit:]]{1,}" input.txt

Jeg får også de andre tallene er det noen måte å få bare 45782?
  #4 (permalink)  
Old 08-31-2007
fazliturk fazliturk is offline
Registrert bruker
  
 

Bli Dato: Aug 2007
Innlegg: 45
cut-f2-d: inndatafil |sed s / [^ 0-9] / / g
  #5 (permalink)  
Old 08-31-2007
charbel charbel is offline
Registrert bruker
  
 

Bli Date: Feb 2006
Innlegg: 41
Er det flere som består av 5 sifre only?
Hvis ja, så du kan bruke awk-kommandoen, og du kan skrive at substring bare ....

Kode:
cat input.txt | awk 'BEGIN (FS \u003d":"} (print substr ($ 2,1,5))

Dette kan hjelpe .....
  #6 (permalink)  
Old 08-31-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: Sep 2006
Innlegg: 2557
Sitat:
Originally Posted by charbel View Post
Er det flere som består av 5 sifre only?
Hvis ja, så du kan bruke awk-kommandoen, og du kan skrive at substring bare ....

Kode:
cat input.txt | awk 'BEGIN (FS \u003d":"} (print substr ($ 2,1,5))

Dette kan hjelpe .....
ikke behov for cat.

Code:
awk 'BEGIN {FS=":"} {print substr($2,1,5)}' input.txt

  #7 (permalink)  
Old 08-31-2007
vino's Avatar
Vino vino is offline Forum Staff  
Tilhenger (i Vino Veritas)
  
 

Bli Date: Feb 2005
Beliggenhet: Bangalore, India
Innlegg: 2798
Sitat:
Originally Posted by baghera View Post
Men hvis det er flere tall på linjen for eksempel:

how_old_r_u: 45782 <br> GJELDER: [30000, t3, t4]: plummet

Det synes når jeg kjører kommandoen


Code:
grep -oE "[[:digit:]]{1,}" input.txt

Jeg får også de andre tallene er det noen måte å få bare 45782?
Hvilke er hvorfor sed alternative was provided. Har du prøvd det? Gir du det du leter etter?
Closed Thread

Hugseliste

Tags
grep eller

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 04:05.


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