Aggiungere numeri di linea ad un file

Archiviato in: manipolazione file — olaolaonline 30 giugno 2009 @ 16:20

Puo’ capitare di voler numerare le righe di un file, come si faceva una volta nei listati dei codici di programmazione.

Il primo modo che mi viene in mente è quello di utilizzare un piccolo script awk

awk ‘{print NR, $0}’ nomefile

Ancora piu’ veloce pero’ e’ utilizzare il comando nl

nl nomefile

Se vogliamo numerare anche le righe vuote, come nel caso del awk, allora basta aggiungere l’opzione -ba.

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.

Invertire il contenuto di un file

Archiviato in: manipolazione file — olaolaonline 20 novembre 2008 @ 23:44

Altro utilissimo comando!!!

Non vi capita tutti i giorni di dover invertire l’ordine delle righe di un file? Bene, se per visualizzare il contenuto di un file nella console usiamo il comando cat, per visualizzarne il contenuto ma in ordine inverso non dobbiamo far altro che usare il comando tac.

Quindi se il file contiene

cat nomefile
Prima riga
Seconda riga
3a riga

il risultato invertito sarà

tac nomefile
3a riga
Seconda riga
Prima riga

Semplice? Semplicissimo!

Convertire un file in formato DOS

Archiviato in: manipolazione file — olaolaonline 5 settembre 2008 @ 20:53

Forse non tutti sanno che i file di testo creati sotto DOS/Windows hanno come terminatore di riga l’accoppiata di caratteri speciali CR/LF (carriage return/line feed o anche \r\n).

Linux e piu’ in generale i sistemi Unix invece utilizzano in solo carattere LF. Per questo quando si copia un file di testo da una macchina Windows si hanno problemi di visualizzazione.

Per risolvere il problema basta applicare al file il comando dos2unix.

dos2unix nomefile

Tale comando in genere non e’ compreso nelle installazioni base ed e’ contenuto in pacchetti che hanno nome diverso nelle varie distribuzioni linux. Credo pero’ che non dovrebbe mancare nella nostra linux box.

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?

Next Page >>>