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
Forvent bufferstørrelsen øker, kan du hjelpe jaduks Shell programmering og Skripting 1 10-12-2007 12:07
hvordan du kan øke størrelsen på konsollen skjermen buffer? the_learner UNIX for Dummies Spørsmål og svar 5 04-25-2007 06:31
Hvordan øke bufferstørrelsen i Unix ziabegg UNIX for Dummies Spørsmål og svar 3 01-05-2007 03:17
Hvordan øke bufferstørrelsen i Unix ziabegg UNIX for Advanced & ekspertbrukere 0 12-23-2006 03:11
buffer bufferstørrelsen gsr_kashyap Red Hat 0 09-07-2006 02:34

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-17-2008
ssunda6 ssunda6 is offline
Registrert bruker
  
 

Bli Date: Feb 2008
Innlegg: 7
Øke bufferstørrelsen å lese lange linjer

Hei Alle,

Jeg prøver å lese utdata fra en kommando. Utdataformatet er som følger:


Code:
Thursday 13 Mar 2008 Information 
This is sample text
Friday 14 Mar 2008 Warning
This is one more sample text

Første linje inneholder informtation (dato osv.), og 2. linjen inneholder noe informasjon.

Problemet er ofte 2. linje lengde er mer og som leses som to linjer i Unix. Men jeg vil lese dette som en linje selv.

Kan vi øke linje bufferstørrelsen i Unix?
Jeg håper spørsmålet er klar.

Hilsen,
Ssunda.
  #2 (permalink)  
Old 03-17-2008
æra
Gjestene
  
 

Innlegg: n / a
Bits: 0 [Bank]
Ditt problem er ikke "bufferstørrelsen". Hvis du bruker en kommando som lest en linje av gangen, det vil lese selv lange linjer, men hvis input er mer enn én linje, vil det bare lese den første linjen.

Let's rephrase dette problemet. Hvordan vet du når noe er mer enn én linje? Fordi neste linje er da ikke en date stamp. Så du kan lage en enkel parser for dette formatet, som registrerer alt opp til neste dato stemplet som en inngang posten.

Dette er trolig best gjøres med et skriptspråk som awk eller Perl eller Python, men bare for skyld argument, her er en rask og skitne løsning i shell script:


Code:
#!/bin/sh

date=
input=
nl="
"  # yes, that's opening quote, newline, closing quote
while read line; do
  case $line in
    *day\ [0-9][0-9]\ *\ [12][0-9][0-9][0-9]\ *)
      # warning! y3k problem
      # warning! fragile matching, would be better with regex
      # warning! basically untested code anyway
      case $date in '') ;;
        *) echo "Result for '$date'":
	    echo "$input" ;;
      esac
      input=
      date=$line
      ;;
    *)
      input="$input${input:+$nl}$line"
      ;;
  esac
done

# whatever is left at end of file is a result too
echo "Result for '$date'":
echo "$input"

  #3 (permalink)  
Old 03-17-2008
ssunda6 ssunda6 is offline
Registrert bruker
  
 

Bli Date: Feb 2008
Innlegg: 7
HI-tiden,

Thanx for svar.
Har din punktet. Men er det likevel at vi kan øke bufferstørrelsen?
I SQL bruker vi "satt linje 200" .. å oppnå det samme.

Takk på forhånd.
  #4 (permalink)  
Old 03-17-2008
æra
Gjestene
  
 

Innlegg: n / a
Bits: 0 [Bank]
Spørsmålet ditt er ikke godt definert. Bufferstørrelsen på hva? Hva kommandoen bruker du til å lese utgang? Hvis det er en grense for hvor lange linjer vil lese, kan du finne en versjon som ikke har en slik grense?

(For eksempel, GNU coreutils verktøy er ofte bedre med hensyn til dette enn hva tilsvarende verktøy levert sammen med kommersielle OS.)
Closed Thread

Hugseliste

Tags
perl, perl regex, regex

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 02:14.


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