Cancellare file con eccezioni

Archiviato in: shell — olaolaonline 30 gennaio 2009 @ 12:13

Quando dobbiamo cancellare una quantià  notevole di file, anche con estensioni diverse, potrebbe essere comodo escludere in modo semplice dalla lista di file da cancellare alcune determinate estensioni. Purtroppo il comando rm non possiede una opzione exclude, ma possiamo ovviare a questo con un comando del tipo

rm $(ls | grep -v .ext1$ | grep -v .ext2$)

In questo modo non facciamo altro che creare al volo la lista di file da cancellare, escludendo tramite il comando grep e la sua opzione di negazione -v i file il cui nome finisce con .ext1 o con .ext2. Il simbolo $ permette appunto di specificare che i nomi dei file devono finire con la stringa specificata, in questo caso l’estensione dei file. La lista di estensioni da escludere può essere allungata e personalizzata a piacimento seguendo le regole delle regular expressions.

Convertire una stringa da caratteri minuscoli a maiuscoli (e viceversa)

Archiviato in: shell — olaolaonline 14 luglio 2008 @ 22:55

Niente di piu’ facile! Ancora una volta ci viene in aiuto il comando tr.

Per passare da caratteri minuscoli a caratteri maiscoli basta lanciare il comando

echo "sono una stringa tutta in minuscolo" | tr "[:lower:]" "[:upper:]"

per ottenere

SONO UNA STRINGA TUTTA IN MINUSCOLO

anche se non e’ piu’ vero :D

Naturalmente, per fare la conversione opposta basta scambiare lower e upper.

Facile no?

Controllo remoto di applicazioni nella shell

Archiviato in: shell — olaolaonline 19 maggio 2008 @ 16:50

Quando lanciamo nel nostro terminale un programma che puo’ durare diverse ore, puo’ essere comodo potersi scollegare dal terminale stesso, oppure dall’intero sistema, in particolare se il pc che stiamo utilizzando non e’ il nostro personale. Oppure nel caso in cui stiamo lanciando un’applicazione su un pc remoto via collegamento ssh.

In questi casi ci viene in aiuto l’utili screen. Con questo piccolo programma e’ possibile aprire un terminale virtuale da cui scollegarci senza fermare le applicazioni lanciate per poi ricollegarci allo stesso terminale in un altro momento o da un altro pc.

Innanzi tutto lanciamo screen

screen

Dopo aver letto le eventuali note iniziali ed aver premuto invio, ci troveremo davanti l’ambiente screen, che ricalca in tutto e per tutto un normale terminale. Possiamo quindi lanciare la nostra applicazione nel modo consueto.

Per scollegarci dal terminale virtuale non dobbiamo far altro che digitare in sequenza i tasti Ctrl+a seguito da d. Saremo cosi’ tornati al nostro consueto terminale.

Per ripristinare invece una sessione screen precedentemente abbandonata, basta usare il comando

screen -r

Se avevamo messo in sospeso piu’ d una sessione screen, il programma ci chiedera’ quale ripristinare, proponendoci una lista. Bastera’ ripetere quindi lo stesso comando indicando anche l’ID della sessione da ripristinare.

Creare liste di numeri

Archiviato in: shell — olaolaonline 21 marzo 2008 @ 18:29

Nella scrittura di procedure o script bash a volte si ha la necessita’ di generare liste di numeri.
Ci sono due modi semplici di compiere tale operazione.
Il primo fa’ uso del comando seq e la sua sintassi e’

seq start step stop

Ad esempio, il comando

seq 1 1 4

genera la seguente lista verticale

1
2
3
4

Il separatore tra due elementi puo’ essere modificato dal valore standard (\n) in uno qualsiasi, ad esempio uno spazio, tramite il flag “-s”, in modo di ottenere una lista orizzontale.

Il secondo sfrutta le proprieta’ stesse della shell e consiste nel comando

echo {1..13}

che generrera’ la lista orizzontale

1 2 3 4 5 6 7 8 9 10 11 12 13

Questo secondo metodo genera solo liste orizzontali, ma puo’ essere usato anche con le lettere minuscole e maiuscole.

Estrarre un campo da un file

Archiviato in: shell — olaolaonline 5 gennaio 2008 @ 20:37

Volete estrarre uno o piu’ campi da un file? Conosco due metodi per farlo, ma sicuramente ve ne saranno numerosi altri (potenza di linux :) ).
Il primo fa uso del comando cut e va’ usato cosi’

cut -d" " -f2 nome_file

.
Questo comando estrae il secondo campo da ogni riga del file indicato. L’opzione -d” “ indica a cut di usare lo spazio come delimitatore dei campi, secondo me piu’ utile, altrimenti viene usato il carattere tab. Il campo -f indica il numero o il range (es. 2-3) dei campi da estrarre.

Altrimenti si puo’ usare un micro script awk

awk ‘{print $2}’ nome_file

.
In questo caso non e’ possibile indicare un range di campi, ma solo una lista. Di contro, awk riconosce come delimitatore sia gli spazi che le tabulazioni.

Next Page >>>