|
|
|
|
Strumenti |
17-06-2003, 08:53 | #1 |
Member
Iscritto dal: Mar 2003
Messaggi: 164
|
"Catturare" parti di testo da consolle
Sono alle prime armi e volevo creare un file .sh x riprendendo dei numeri da un programma lanciato precedentemente dalla consolle. Esiste qualche comando da inserire nel file o qlc x riuscire a riprendere quella parte di testo o numero da un programma esterno lanciato precedentemente dalla consolle?
Qualcuno mi può aiutare? Ciao by ElMato |
17-06-2003, 09:04 | #2 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
devi fare uno scriptino bash....mettere tutto in un unico file contenente la sequenza di operazioni da compiere...
|
17-06-2003, 09:06 | #3 |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Sii piu' preciso
hai un programma che stampa dei numeri nello stdout e li vuoi leggere dal tuo script? Se e' cosi' programma | tuoscript.sh e leggi da stdin |
17-06-2003, 09:09 | #4 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5691
|
forse ho capito cosa intendi
da shell lancia: Codice:
script miofile poi lo editi e ti ricavi lo scipt di cui hai bisogno. |
17-06-2003, 09:13 | #5 |
Member
Iscritto dal: Mar 2003
Messaggi: 164
|
Lovaz sono alle prime armi con linux e ho capito ben poco di quello che hai scritto cmq lancio il comando list da consolle e con uno script volevo recuperare quello che aveva scritto nella consolle.
Mi potete aiutare? |
17-06-2003, 09:19 | #6 |
Senior Member
Iscritto dal: May 2002
Città: Provincia de Venessia
Messaggi: 1078
|
scrivi sulla consolle: list | nomescript e l'output di list viene mandato nell'input dello script.. si chiama pipe (all'inglese)
__________________
- Moderatore - IRC Op @ #sabayon su irc.freenode.net - Core Beta Tester - Blog Sabayon |
17-06-2003, 09:48 | #7 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Uno stralcio di uno scriptino che uso io per rimuovere dei file di log....
Codice:
file="$homeLogs$httpPrinter_file" files=`ls $file` for token in $files do esito=`tail $token > $token` if [ "x$esito" = "x" ] then echo resettato il file $token else echo $esito fi done;; |
17-06-2003, 11:12 | #8 |
Member
Iscritto dal: Mar 2003
Messaggi: 164
|
Scusate x la mia ignoranza ma è meglio se rispiego quello che voglio ottenere.
Da uno script vorrei riprendere le dimensioni del video lanciato precedentemente da mplayer, queste informazioni nn appaiono nella prima riga (altrimenti avrei risolto utilizzando mplayer video.avi | script.sh) ma dopo un bel pò di righe. Come posso riprendere queste infomazioni in mezzo alle diverse righe? ________________________________________ mplayer da consolle: Using GNU internationalization Original domain: messages Original dirname: /usr/share/locale Current domain: mplayer Current dirname: /usr/local/share/locale MPlayer 0.90rc5-3.2.2 (C) 2000-2003 Arpad Gereoffy (see DOCS) CPU: Advanced Micro Devices (Family: 6, Stepping: 0) Detected cache-line size is 64 bytes CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0 Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE Reading config file /usr/local/etc/mplayer/mplayer.conf: No such file or directory Reading config file /root/.mplayer/config Reading /root/.mplayer/codecs.conf: can't open '/root/.mplayer/codecs.conf': No such file or directory Reading /usr/local/etc/mplayer/codecs.conf: 50 audio & 136 video codecs font: can't open file: /root/.mplayer/font/font.desc Font /usr/local/share/mplayer/font/font.desc loaded successfully! (206 chars) Failed to open /dev/rtc: Dispositivo o risorsa occupata (mplayer should be setuid root or /dev/rtc should be readable by the user.) Using usleep() timing Can't open input config file /root/.mplayer/input.conf : No such file or directory Can't open input config file /usr/local/etc/mplayer/input.conf : No such file or directory Falling back on default (hardcoded) input config Setting up LIRC support... mplayer: could not connect to socket mplayer: Connessione rifiutata Failed to open LIRC support. You will not be able to use your remote control. Playing video.avi AVI file format detected. VIDEO: [DIVX] 720x314 24bpp 25,00 fps 1380,0 kbps (168,5 kbyte/s) _______________________________________________________________ Quello evidenziato è quello che mi interessa ripredere nello script. [/b] |
17-06-2003, 11:23 | #9 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Metti l'ultima riga in una variabile con tail -1 e poi se il formato di quella riga è sempre uguale usi le funzioni per estrarre le sottostringhe.
|
17-06-2003, 11:31 | #10 |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
basta che fai
mplayer pippo.avi | grep VIDEO: e ottieni la riga in questione (visto che non dovrebbe essere l'ultima) |
17-06-2003, 11:45 | #11 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Hai ragione... A sto punto fai un | grep 'VIDEO: [DIVX] ' e vai sul sicuro...
|
17-06-2003, 12:15 | #12 |
Member
Iscritto dal: Mar 2003
Messaggi: 164
|
Ok grazie x i suggerimenti fino a qui ci sono arrivato:
VIDEO: [DIVX] 720x314 24bpp 25,00 fps 1380,0 kbps (168,5 kbyte/s) Adesso che comandi devo usare x estrarre solo '720X314' ? Un'altra cosa se ho 10 righe che cominciano con le stesse parole e varia soltanto un valore alla fine com faccio a catturare il valore della 5a riga? Grazie x il Vostro Aiuto. PS: Come si fa il trattino orizzontale (che combinazione di tasti) ? Ciao by ElMato |
17-06-2003, 12:53 | #13 | |||
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Quote:
Quote:
Quote:
|
|||
17-06-2003, 13:05 | #14 | |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Quote:
... | head -5 | tail -1 dovrebbe andare (anche se non l'ho provato ) |
|
17-06-2003, 13:23 | #15 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
quelloCheTiServe=`echo $linea |cut -cm-n`
dove m è l'indice iniziale e n quello finale e linea è la riga di testo che hai estratto... |
17-06-2003, 13:36 | #16 |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Non e' meglio cosi'?
... | cut -d \ -f 3 ti estrae il terzo campo, indipendentemente dal num di caratteri che ci sono prima, usando come separatore lo spazio (attenzione ai due spazi dopo \ ) |
17-06-2003, 13:46 | #17 | |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Quote:
|
|
17-06-2003, 20:27 | #18 |
Member
Iscritto dal: Mar 2003
Messaggi: 164
|
Vi ringrazio x il vostro aiuto. Ora però ho un altro problema: ho una riga come questa:
xxhgcbdsfjnoidngodgn (pippo=ciao) e vorrei ricavare solo la parola 'ciao', come faccio? Grazie 1000 Ciao by ElMato |
18-06-2003, 00:40 | #19 | |
Senior Member
Iscritto dal: Mar 2003
Messaggi: 545
|
Quote:
Quindi IMO dovrebbe essere | cut -f 3
__________________
Linux Registered User Linux Registered Machine |
|
18-06-2003, 08:23 | #20 | ||
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Quote:
Quote:
|
||
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:11.