![]() |
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| Aspettatevi di aumentare le dimensioni del buffer, si prega di aiuto | jaduks | Shell scripting e di programmazione | 1 | 10-12-2007 12:07 PM |
| modalità per aumentare la dimensione del buffer dello schermo della console? | the_learner | UNIX for Dummies Domande & Risposte | 5 | 04-25-2007 06:31 PM |
| Come aumentare la dimensione del buffer in Unix | ziabegg | UNIX for Dummies Domande & Risposte | 3 | 01-05-2007 03:17 PM |
| Come aumentare la dimensione del buffer in Unix | ziabegg | UNIX e avanzata per utenti esperti | 0 | 12-23-2006 03:11 AM |
| buffer cache size | gsr_kashyap | Red Hat | 0 | 09-07-2006 02:34 AM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
Aumentare la dimensione del buffer di leggere lunghe linee di
Hi All,
Sto cercando di leggere da un comando di uscita. Il formato di output è il seguente: Codice:
Thursday 13 Mar 2008 Information This is sample text Friday 14 Mar 2008 Warning This is one more sample text Il problema è a volte la lunghezza della 2a linea è di più e che è stato letto come due linee di Unix. Ma voglio che, come leggere una riga stessa. Siamo in grado di aumentare la dimensione del buffer in linea Unix? Mi auguro che la questione è chiara. Saluti, Ssunda. |
|
||||
|
Il tuo problema non è "dimensione del buffer". Se si utilizza un comando in cui si legge una riga alla volta, si leggono anche lungo le linee, ma se l'ingresso è più di una riga, solo leggere la prima riga.
Let's riformulare questo problema. Come si fa a sapere quando è qualcosa di più di una riga? Perché la riga successiva non è quindi una data timbro. Quindi è possibile creare un semplice parser per questo formato, in cui si riconosce tutto fino alla prossima data timbro come uno degli input record. Questo probabilmente è meglio farlo con un linguaggio di scripting come awk o Perl o Python, ma solo per il gusto di tesi, ecco una soluzione rapida e sporca in script di shell: Codice:
#!/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"
|
|
||||
|
HI epoca,
Grazie per la risposta. Hai il tuo punto. Ma c'è comunque che siamo in grado di aumentare la dimensione del buffer? In SQL, usiamo 'impostare linea 200' .. per raggiungere lo stesso. Grazie in anticipo. |
|
||||
|
La tua domanda non è ben definita. Dimensione del buffer di che cosa? Che cosa stai usando il comando a leggere l'output? Se il risultato è un limite per quanto tempo le linee si legge, si può trovare una versione che non ha tale limite?
(Ad esempio, il GNU coreutils strumenti sono spesso meglio in questo senso che qualunque strumenti equivalenti spediti con il sistema operativo commerciale.) |
![]() |
| Segnalibri |
| Tag |
| perl, perl regex, regex |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|