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 > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Forventer bufferstørrelsen stigning, kan du hjælpe jaduks Shell Programmering og Scripting 1 10-12-2007 12:07 PM
hvordan man kan øge størrelsen af konsollen skærmen buffer? the_learner UNIX for dummyer Spørgsmål & svar 5 04-25-2007 06:31 PM
Hvordan kan man øge bufferstørrelsen i Unix ziabegg UNIX for dummyer Spørgsmål & svar 3 01-05-2007 03:17 PM
Sådan øge bufferstørrelsen i Unix ziabegg UNIX for Advanced & Ekspertsøgning Brugere 0 12-23-2006 03:11 AM
buffer cachestørrelse gsr_kashyap Red Hat 0 09-07-2006 02:34 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-17-2008
ssunda6 ssunda6 is offline
Registreret Bruger
  
 

Join Date: Feb 2008
Stillinger: 7
Øge bufferstørrelsen at læse lange linjer

Hi All,

Jeg forsøger at læse output fra en kommando. Outputformatet 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 indeholder informtation (dato osv.) og 2. linje indeholder nogle oplysninger.

Problemet er nogle gange den 2. Line's længde er større, og at der bliver læst som to linjer i Unix. Men jeg vil læse det som en linje selv.

Kan vi øge linje bufferstørrelsen i Unix?
Jeg håber spørgsmålet er klart.

Hilsen,
Ssunda.
  #2 (permalink)  
Old 03-17-2008
epoke
Guest
  
 

Posts: n / a
Bits: 0 [Banker]
Dit problem er ikke "buffer size". Hvis du bruger en kommando der lyder en linje i en tid, det vil læse selv lange linjer, men hvis input er mere end én linje, vil det kun læst den første linje.

Lad os omformulere dette problem. Hvordan kan du vide, hvornår noget er mere end én linje? Da den næste linje er så ikke en dato stempel. Så kan du oprette en simpel parser til dette format, som genkender alt op til næste date stempel som et input record.

Dette er formentlig bedst sker med et scriptsprog såsom awk eller Perl eller Python, men blot for at argumentet om, her er en hurtig og beskidt oplø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
Registreret Bruger
  
 

Join Date: Feb 2008
Stillinger: 7
HI æra,

Thanx for svaret.
Got dine point. Men er der alligevel, at vi kan øge bufferstørrelsen?
I SQL bruger vi 'i linje 200 «.. at opnå det samme.

Thanks in advance.
  #4 (permalink)  
Old 03-17-2008
epoke
Guest
  
 

Posts: n / a
Bits: 0 [Banker]
Dit spørgsmål er ikke veldefineret. Bufferstørrelsen af hvad? Hvad kommando bruger du til at læse output? Hvis den har en grænse for, hvor lange linjer vil læse, kan du finde en version, der ikke har en sådan grænse?

(For eksempel er GNU coreutils værktøjer er ofte bedre i denne henseende end hvad tilsvarende værktøjer leveres med dine kommercielle OS.)
Closed Thread

Bogmærker

Tags
perl, perl regex, regex

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 03:20 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