Pagina 1 di 1

Domande su bash

Inviato: gio 7 apr 2011, 11:11
da darkstaring
Salve leggere un file di testo partendo dal 5 carattere per ogni riga..
E' possibile farlo con sed?
Grazie

Re: Sed?

Inviato: gio 7 apr 2011, 11:19
da masalapianta
con sed bat tru non saprei, ma lo puoi fare sicuramente con cut:
cut -c 5- file

Re: Sed?

Inviato: gio 7 apr 2011, 11:28
da darkstaring
Perfetto grazie, funziona :)
Grande, mi serviva...

Ciaoo :)

Re: [RISOLTO] Sed? --> cut

Inviato: gio 7 apr 2011, 11:47
da darkstaring
E se volessi passare l'output ad una variabile?
l'output di "echo 10+4 | bc"

Re: Domande su bash

Inviato: gio 7 apr 2011, 11:57
da masalapianta
variabile=`echo 10+4 | bc`
oppure
variabile=$(echo 10+4 | bc)

N.B. "assegnare" non "passare"

Re: Domande su bash

Inviato: gio 7 apr 2011, 12:04
da pino_otto
Per chi e' di Torino e interessa, stasera inizia un minicorso sulla bash presso il LUG di Torino:

http://glugto.org

Re: Domande su bash

Inviato: gio 7 apr 2011, 12:42
da darkstaring
E se volessi ciclare tra 2 variabili?
come potrei fare?
es:

Codice: Seleziona tutto

read TARGET

MIN=`echo $TARGET-150 | bc`
MAX=$(echo $TARGET+150 | bc)
echo $MIN $MAX
for TMP in {$MIN..$MAX};  do
..........
 
Ie variabili MIN e MAX sono inizializzate
ma il cilo non và :)

Grazie

Re: Domande su bash

Inviato: gio 7 apr 2011, 14:27
da umaga
con il costrutto {a..b} non puoi usare variabili al posto di a e b, devono essere numeri fissi.
puoi risolvere pero usando seq:
[code]for TMP in $(seq $MIN $MAX); do[/code]

Re: Domande su bash

Inviato: ven 8 apr 2011, 0:14
da darkstaring
umaga ha scritto:con il costrutto {a..b} non puoi usare variabili al posto di a e b, devono essere numeri fissi.
puoi risolvere pero usando seq:

Codice: Seleziona tutto

for TMP in $(seq $MIN $MAX);  do
Tu 6 un grande :)..comunque mi sono allontanato dal pc per andare a fumare e ho fatto un casino :)..doveva creare un file da un pò di righe è ha creato un file da 18GB nella mia home e non ha proseguito perchè non aveva più spazio! :)..ho eliminato :).. ora ci sto attento.. comunque grazie
Offtopic: Avete visto Slackware For Dummies Project questo viewtopic.php?f=12&t=23417
Sarebbe bello avere cose come queste :).. questa è scuola :)

Re: Domande su bash

Inviato: ven 8 apr 2011, 10:23
da joe
Ne approfitteri per fare anche io una domanda circa l'assegnazione di variabile col metodo di cui avete parlato sopra:

Codice: Seleziona tutto

VAR=$(comando)
VAR=`comando`
Poniamo che l'output del nostro "comando" sia genericamente "pippo".
Che cosa accade quando richiamo la variabile per utilizzarla nel seguito dello script?
1- viene eseguito ogni volta il "comando"
2- viene semplicemente usato il "valore" che quel comando aveva al momento dell'assegnazione, ovvero "pippo" nell'esempio sopra

Mi spiego in altro modo:
il comando viene effettivamente eseguito al momento dell'assegnazione o al momento dell'utilizzo della variabile "${VAR}"?

Chiedo perchè in un mio script avevo appunto usato una variabile assegnandole l'output di un comando che sfruttava wget:

Codice: Seleziona tutto

SIZE=$(wget -S --spider "${LINK}" 2>&1|grep Content-Length |sed 's/.*: //'
Praticamente otteneva l'output e quindi il valore di assegnazione attraverso internet, nella fattispecie la variabile "SIZE" doveva contenere la dimensione in bytes di un file remoto "$LINK".
Nel momento in cui il comando viene eseguito e si interroga il link via internet, lo script rallenta parecchio a seconda della connessione che si ha. Quindi, se il comando viene eseguito all'atto dell'assegnazione e basta, nessun problema. Invece se ogni volta che la variabile viene usata è necessario contattare il LINK lo script sarà molto più lento, spero d'essermi spiegato.
Se quello fosse il caso la soluzione potrebbe essere:

Codice: Seleziona tutto

wget -S --spider "${LINK}" 2>&1|grep Content-Length |sed 's/.*: //' > $TMPFILE
SIZE=$(cat $TMPFILE)
In tal modo l'utilizzo di ${SIZE} non scomoderebbe sicuramente internet con conseguentirallentamenti.
Ho comunque pensato di chiedere per capire un po' meglio la questione.

Re: Domande su bash

Inviato: ven 8 apr 2011, 10:34
da masalapianta
joe ha scritto:Ne approfitteri per fare anche io una domanda circa l'assegnazione di variabile col metodo di cui avete parlato sopra:

Codice: Seleziona tutto

VAR=$(comando)
VAR=`comando`
Poniamo che l'output del nostro "comando" sia genericamente "pippo".
Che cosa accade quando richiamo la variabile per utilizzarla nel seguito dello script?
1- viene eseguito ogni volta il "comando"
2- viene semplicemente usato il "valore" che quel comando aveva al momento dell'assegnazione, ovvero "pippo" nell'esempio sopra
la seconda che hai detto

Re: Domande su bash

Inviato: ven 8 apr 2011, 10:58
da joe
Grazie della conferma :)