Ordina, Rovescia e Unisci il contenuto dei File
Posted by Hackgeek | Posted in Guide, Linux, Trucchi Geek | Posted on 30-07-2009
Tag:ordina file, rovescia file, unisci file
2
Hai un file di testo, con molte parole e termini al suo interno, vorresti poterci lavorare in modo semplice senza nessun editor…come puoi fare?
La soluzione migliore per i più smanettoni è senza dubbio quella di utilizzare il Terminale di Linux.
Voglio farti vedere alcuni esempi in cui l’uso della riga di comando si rivela vincente, e con pochi comandi puoi modificare un file senza nessuno sforzo.

1° ESEMPIO
Hai un file di testo e vuoi Ordinarlo, come puoi fare?
Applicazioni > Accessori >Terminale
Un semplice comando ti viene in aiuto: sort, che ti permette di ordinare il contenuto di un file. Questo comando prende come argomento un file e ne stampa il contenuto con le righe in ordine alfabetico.
Puoi anche dire al comando di ignorare gli spazi all’inizio delle righe tramite l’attributo -b, con -r puoi invertire l’ordinamento, con -n puoi ordinare le stringhe che contengono numeri (e quindi non in ordine alfabetico), con -f puoi indicare al programma di non fare differenza fra le maiuscole e le minuscole.
Facciamo un banale esempio.
Ho scritto un file con all’interno dei nomi: ciao, miao, abaco, mirko, marco, giulia, orso, junior, luciana, valentina, gufo. Ho salvato il file sulla Scrivania con il nome “invertire”.
Se voglio vedere l’output in ordine alfabetico sul mio terminale mi basterà dare il seguente comando:
sort invertire
2° ESEMPIO
Hai un file e vuoi stampare il suo contenuto alla rovescia?
Questa volta ti basterà utilizzare il comando tac. Prendi il file di prima denominato “invertire” e prova a dare il seguente comando da terminale:
tac invertire
3° ESEMPIO
Hai un file e vuoi eliminare le linee adiacenti uguali, come fare con un unico comando?
Puoi usare il comando uniq. Con l’attributo -i puoi far ignorare la differenza fra maiuscole e minuscole, con -d puoi stampare le linee duplicate, con -s puoi specificare il numero di caratteri da eliminare nella fase di confronto e quindi questi caratteri non saranno presi in considerazione.

Voglio farti vedere cosa si può fare unendo questi semplici comandi.
La situazione è questa: hai due file (o anche di più), chiamati “invertire” e “invertire2″. All’interno del file chiamato invertire hai le stesse parole degli esempi precedenti mentre nel file “invertire2″ hai le seguenti parole: ciao, miao, abaco, mirko, casa, lavoro, hacker, craccare, wifi.
Desideri unire il contenuto dei file, e ottenere un unico elenco, ordinato, in cui le parole compaiono solo una volta, puoi ottenere questo risultato aprendo il terminale ed eseguendo questo comando:
cat invertire* | sort | uniq > elencofinale
Ecco il mio risultato:
abaco
casa
ciao
craccare
giulia
gufo
hacker
junior
lavoro
luciana
marco
miao
mirko
orso
valentina
wifi
Tutto questo con un semplice comando…come avresti fatto in altri modi? Pensa se avessi avuto decine di file, con migliaia di parole…un lavoro immane…
Questo è solo un banale esempio per farti capire la potenza della riga di comando, uno strumento che non deve spaventare, in quanto può rivelarsi fondamentale nelle operazioni di tutti i giorni.
Conosci altri metodi per svolgere l’operazione dell’ultimo esempio in modo rapido? Lascia un commento.



































Che mondo sarebbe senza Linux ^^
Uso ubuntu da qualche settimana, ecco qui il mio feedback!
http://eneamoro.com/computer/il-mio-feedback-su-ubuntu-9-04/
@ Enea:
Ciao Enea, spero che ti appassionerai a questo mondo…! Io ormai sono Linux-dipendente da anni…
A presto! Ciao