Lanciare un comando per ogni riga di un file di testo

January 13, 2016 0 Comments CLI Utility

Vi è mai capitato di avere un file di testo dove in ogni riga c’è per esempio il nome di un file o il nome di un dominio, e per ognuna di queste righe bisognerebbe lanciare un comando per recuperare delle informazioni o per eseguire delle operazioni sul file?

Ebbene, il comando è molto semplice. Bisogna lanciare un ciclo while da riga di comando.

Supponiamo di avere un file di ingresso chiamato sorgente.txt dove in ogni riga c’è la nostra “variabile”. Chiamiamo output.txt il file che conterrà l’output che riceveremmo in riga di comando per ognuna di queste righe. Se per esempio vogliamo eseguire il comando echo per stampare semplicemente la riga del file di testo, il ciclo sarà questo:

while read in; do echo "$in"; done < sorgente.txt > output.txt  

il nostro comando sarà quindi echo "$in" ma potremmo sostituirlo con qualunque altro comando. La variabile "$in" è la nostra riga del file di testo letto in input.

Provate con altri comandi e vedrete che vi risparmierà un sacco di tempo! 🙂

Samuele Chiocca
Padova, italy Website