![]() |
|
|
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. |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
E 'possibile con sed o awk?
Ciao a tutti, Sono Tring scrivere uno script che dovrebbe leggere la prima riga del file ed eseguire alcuni compiti. Una volta che il compito è completato la riga successiva del file deve essere letto il compito deve essere eseguito. Quindi è possibile avere un contatore tipo di cose, in sed o awk, che l'incremento e quindi causare la prossima linea da leggere? In seguito è come ho pensato di farlo, ma non funziona come non posso assegnare il valore di $ C per arrivare a leggere una riga: Codice:
C=1 #counter while true do LOG=`sed '$C!d' /var/log/somelog.log` # perform the task on $LOG # C=`expr $C + 1` done Grazie |
|
||||
|
Grazie per la risposta danmero.
Che avevo provato in precedenza. Quando si legge il copione attraverso somelog.log e raggiunge EOF esce. Ma io non ne vogliono sapere di uscire. Se il EOF è raggiunto lo script dovrebbe attendere fino nuova linea, è aggiunto somelog.log e quindi eseguire il compito. Anche il nuovo pacchetto di somelog.log sarebbe aggiunto a intervalli casuali. Eventuali suggerimenti su come avere lo script in cui ha smesso di aspettare, piuttosto che uscire e continuare quando la nuova linea è aggiunto? Grazie. |
|
||||
|
Citazione:
Non ho provato l'alternativa passo ancora come me non ha dimestichezza con logrotates. Sarebbe altro modo per farlo? Grazie. |
|
|||||
|
hmm - provare qualcosa di simile: Codice:
# tail -f infile | while read line; do echo $line | tr "[a-z]" "[A-Z]"; done HELLO WORLD infile dove è stato un file vuoto, e mi ha semplicemente: Codice:
# echo hello >> infile # echo world >> infile |
|
||||
|
Grazie per la risposta tytalus.
Penso che questo non avrebbe funzionato per me come il mio script contiene 10 logiche in essa. Così ho preso un altro percorso e l'utilizzo di cron e ls e spostare il file di circa una volta che il lavoro è finito mi sono a fare il lavoro. Ma sarebbe stato più facile e bello se potessi capire solo un modo per fare questo, come ho voluto. Ancora non mi stancherò mai di leggere e vedere se posso fare il modo in cui volevo farlo. Grazie ancora. |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|