Estrarre dalla riga 5 alla riga 10 del file pippo.txt: sed -n 5,10p pippo.txt Estrarre dalla riga 5 alla 10 e poi la 15 sed -n -e 5,10p -e 15p pippo.txt
Tag:sed
Estrarre un numero da una stringa
$ NUMERO=$(echo “Ho 999 anni.” | tr -dc ‘0-9’) $ echo $NUMERO. 999. $ NUMBER=$(echo “Ho 999 anni.” | sed ‘s/[^0-9]*//g’) $ echo $NUMERO. 999. $ STRING=”Ho 999 anni.” $ echo “${STRING//[!0-9]/}” 999. O. $ echo “${STRING//[^0-9]/}” $ NUMERO=$(echo “Ho 999 anni.” | grep -o -E ‘[0-9]+’) $ echo $NUMERO. 999.
Modificare stringa in più file
Per modificare una stringa cercandola in tutti i file presenti in una cartella o in una struttura di cartelle usare il comando:
Estrarre un range di orari da un log
Per estrarre le righe corrispondenti ad un range orario/data da un log usare sed con la seguente sintassi: sed -n ‘/<data start>/,/<data stop>/p’ <file> Esempio: sed -n ‘/Mon Oct 4 09:50:13/,/Mon Oct 4 09:50:30/p’ wifi.log
Pulire nomi file
Per eliminare i caratteri speciali dai nomi dei file usare l’espressione regolare: s/[^A-Za-z0-9._-]/_/g Può essere usata con VI oppure con sed: sed -e ‘s/[^A-Za-z0-9._-]/_/g’ oppure direttamente con find: find . -exec rename ‘s/[^A-Za-z0-9._-]/_/g’ “{}” \;