Il blog di AmicoSmanettone.it

Questo è il blog di amicosmanettone.it in cui trovare ottime guide!

  • Home
    Home This is where you can find all the blog posts throughout the site.
  • Categories
    Categories Displays a list of categories from this blog.
  • Login
    Login Login form
Posted by on in Bash
Font size: Larger Smaller

[Bash] - Rimuovere la prima riga da tutti i file CSV presenti in una cartella

Eccoci di nuovo qui con la nostra amata shell linux..
Spesso mi è capitato di dover eseguire operazioni semplici su grosse quantità di file presenti in una cartella.
Ci sono due soluzioni in questi casi: eseguire la singola attività su ogni singolo file oppure scrivere una riga di codice e lasciare che sia la shell ad eseguire l'intero lavoro per noi.

 

Facciamo un esempio pratico...


Supponiamo di avere in una cartella centinaia di file CSV (https://it.wikipedia.org/wiki/Comma-separated_values).
Supponiamo di voler rimuovere in questi file la prima riga che di solito contiene l'intestazione del file.


La nostra shell ci permette di fare tutto questo con una semplice riga che trovate qui sotto.

 

for i in *.csv; do sed '1d' $i > $i.tmp && mv $i.tmp $i -f; done

 

Questo comando non fa altro che copiare l'intero file csv in esame all'interno di un file temporaneo (.tmp) saltando la prima riga e successivamente rinomina il file temporaneo togliendo l'estensione tmp aggiunta nel processo di copiatura.

 

Quest'attività viene ripetutto per tutti i file csv presenti nella cartella in cui lanciamo lo script (for i in *.csv).

 

Che dire ? POTENZA DELLA SHELL!

Se questo articolo vi è stato utile per favore condividetelo tramite i link social che trovate qui sotto.

 

Comments

Condividi

Lavora con noi - © 2014 AmicoSmanettone.it - P.IVA: 11745741006 - RECLAMI