![]() |
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier. |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Erwarten Puffergröße erhöhen, bitte helfen | jaduks | Shell Programmierung und Scripting | 1 | 10-12-2007 12:07 PM |
| wie die Größe der Konsole mit Puffer? | the_learner | UNIX for Dummies Questions & Answers | 5 | 04-25-2007 06:31 PM |
| Wie zu erhöhen Puffergröße in Unix | ziabegg | UNIX for Dummies Questions & Answers | 3 | 01-05-2007 03:17 PM |
| Wie, um die Puffergröße in Unix | ziabegg | UNIX für Fortgeschrittene und Experten | 0 | 12-23-2006 03:11 AM |
| Puffer-Cache-Größe | gsr_kashyap | Red Hat | 0 | 09-07-2006 02:34 AM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
Erhöhen Sie die Puffergröße zu lesen, lange Linien
Hi All, Ich versuche zu lesen, Ausgabe von einem Befehl. Die Ausgabe-Format ist wie folgt: Code:
Thursday 13 Mar 2008 Information This is sample text Friday 14 Mar 2008 Warning This is one more sample text Die erste Zeile enthält informtation (Datum usw.) und die 2. Zeile enthält einige Informationen. Das Problem ist manchmal der 2. Zeile die Länge ist, dass mehr und wird als zwei Zeilen in Unix. Aber ich möchte zu lesen, dass sich als eine Zeile. Können wir die Linie Puffergröße in Unix? Ich hoffe, die Frage ist klar. Grüße, Ssunda. |
|
||||
|
Ihr Problem ist nicht "Puffer". Wenn Sie einen Befehl, der lautet eine Zeile in einer Zeit, es wird auch lange Zeilen lesen, aber, wenn der Eingang ist mehr als eine Zeile, so wird nur die erste Zeile. Lassen Sie uns dieses Problem formulieren. Woher wissen Sie, wenn etwas mehr als eine Zeile? Da die nächste Zeile ist dann nicht ein Datum. So können Sie einen einfachen Parser für dieses Format, das erkennt alles bis zum nächsten Datum als ein Eingang aufnehmen. Dies ist wahrscheinlich am besten mit einer Skriptsprache wie awk oder Perl oder Python, sondern nur im Interesse der Argument, hier ist eine schnelle und schmutzige Lösung in Shell-Skript: 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"
|
|
||||
|
Ihre Frage ist nicht gut definiert. Puffergröße von was? Was Befehl verwenden Sie, um den Ausgang? Wenn es ein Limit, wie lange wird es lesen, finden Sie eine Version, die keine solche Grenze?
(Zum Beispiel, die GNU coreutils-Tools sind oft besser in dieser Hinsicht als gleichwertige Instrumente, was mit Ihrem kommerzielles Betriebssystem.) |
![]() |
| Lesezeichen |
| Tags |
| perl, perl regex, regex |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|