![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Verwachten buffer grootte toenemen, help | jaduks | Programmeren en Shell Scripting | 1 | 10-12-2007 11:07 |
| hoe te vergroten grootte van de console scherm buffer? | the_learner | UNIX voor Dummies Questions & Answers | 5 | 04-25-2007 05:31 PM |
| Hoe te verhogen buffergrootte in Unix | ziabegg | UNIX voor Dummies Questions & Answers | 3 | 01-05-2007 03:17 PM |
| Hoe kunnen we de buffer grootte in Unix | ziabegg | UNIX for Advanced & Expert Gebruikers | 0 | 12-23-2006 03:11 |
| buffer cachegrootte | gsr_kashyap | Red Hat | 0 | 09-07-2006 01:34 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Verhoog het formaat van de buffer te lezen lange lijnen
Hi All,
Ik probeer te lezen output van een commando. De output formaat is als volgt: Code:
Thursday 13 Mar 2008 Information This is sample text Friday 14 Mar 2008 Warning This is one more sample text Het probleem is soms de 2e lijn van de lengte is meer en dat wordt gelezen als twee lijnen in Unix. Maar ik wil om te lezen dat als een regel zelf. Kunnen we de lijn buffergrootte in Unix? Ik hoop dat de vraag is duidelijk. Groeten, Ssunda. |
|
||||
|
Uw probleem is niet de "grootte". Als u een commando die luidt een regel in een tijd, zal het lezen, zelfs lange lijnen, maar als de input is meer dan een regel, dan zal alleen de eerste lijn.
Laten we het herformuleren van dit probleem. Hoe weet je wanneer er iets meer dan een regel? Omdat de volgende regel wordt dan niet een datumstempel. Dus je kunt een gewone parser voor deze indeling, die erkent alles tot aan de volgende datum stempel als een input record. Dit is waarschijnlijk het beste doen met een scripttaal zoals awk of Perl of Python, maar omwille van de stelling, here's a quick and dirty oplossing in 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"
|
|
||||
|
Uw vraag is niet goed omschreven. Buffer grootte van wat? Welke opdracht gebruikt u voor het lezen van de output? Als er een limiet aan hoe lang het zal lijnen lezen, vindt u een versie die geen dergelijke beperking?
(Bijvoorbeeld, de GNU coreutils tools zijn vaak beter in dit verband dan gelijk welke hulpmiddelen geleverd met uw commerciële OS.) |
![]() |
| Bladwijzers |
| Labels |
| perl, Perl regex, regex |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|