PDA

Visualizza la versione completa : [BASH] Eliminare la parte finale di una stringa


jeangr
09-03-2007, 11:07
Ciao a tutti.
Ho bisogno di eliminare la parte finale di una stringa e salvarla nella stessa variabile.Mi spiego meglio.

ottengo lo spazio occupato in KB di un cartella in questo modo:


size=$(du /mio_percorso/directory)

Se faccio:


echo $size ... ottengo:


23 /mio_percorso/directory

Ora vorrei ottenere solo il numero che indica i KB che occupa /mio_percorso/directory cosi':


size={$size% *y}

dove la y indica l'ultima lettera della mia stringa e il carattere spazio dopo il % lo spazio tra il 23 e la /
Non so se mi son spiegato.
Sta di fatto che riottengo la stessa scritta perch il carattere spazio lo riconosce male o che ne so io...
Come potrei ottenere il mio numero bello pulito?
Dopo devo metterlo in un controllo IF e confrontarlo con un'altra variabile contenente un numero.

Grazie

zucchino
09-03-2007, 18:32
:-| provo a rispondere senza aver capito...
vuoi avere solo il numero?



size=$(du /mio_percorso/directory | cut -f1 -d\ )

jeangr
12-03-2007, 10:56
col tuo metodo non cambia nulla,mentre se faccio:


size=$(du /mio_percorso/directory | cut -f1 -d/ ) (notare la slash e non il backslash come avevi scritto te,che il carattere da cui deve incominciare a tagliare alla fine della stringa)

ottengo si il numero,ma se faccio


echo ${#size}

ottengo sempre un numero maggiore di uno,che sarebbe il carattere spazio tra il numero indicante la grandezza in kb e il percorso


23 /mio_percorso/directory

quindi qui tra 23 e /

ora provo a mettere il valore di size dentro un IF per un confronto e vidiam se fa problemi confrontare un "numero" con un "numero e spazio"

zucchino
12-03-2007, 13:35
Infatti. Non ci vuole / ma \

la \ non un carattere... per fare l'escape dello spazio che segue...

In ogni caso... mi correggo... prova direttamente con:



size=$(du /mio_percorso/directory | cut -f1 )

zucchino
12-03-2007, 14:12
... per la cronaca

il carattere che segue il numero un tab e non uno spazio.
per quello che il comando non funzionava.

jeangr
13-03-2007, 12:29
perfetto grazie mille...infatti un tab maledetto...
sei stato molto gentile e paziente :)

Loading