var=”pippo.txt” Eliminare gli ultimi 3 caratteri: echo ${var::-3} pippo. Eliminare i primi 3 caratteri: echo ${var:3} po.txt Ottenere solo i primi 3 caratteri: echo ${var::3} pip Ottenere solo gli ultimi 3 caratteri: echo ${var: -3} txt
Categoria:Manipolazione testo
Convertire case nomi file
Per cambiare il case dei nomi dei file usare i seguenti comandi: Da maiuscolo a minuscolo: for nomefile in $(ls <nome del file>); do mv $nomefile $(echo $nomefile | tr “[:upper:]” “[:lower:]”); done Da minuscolo a maiuscolo: for nomefile in $(ls <nome del file>); do mv $nomefile $(echo $nomefile | tr “[:lower:]” “[:upper:]”); done
VI eliminare righe in base a pattern
Per eliminare le righe che contengono un pattern: :g/<pattern>/d Per eliminare le righe che non contengono un pattern: :g!/<pattern>/d
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:
Sostituzione di una sottostringa
nx71@iNuvoPro ~ % pippo=’Ciao abc Alfonso, abc amico mio !’ nx71@iNuvoPro ~ % echo $pippo Ciao abc Alfonso, abc amico mio ! nx71@iNuvoPro ~ % echo ${pippo/abc/caro} Ciao caro Alfonso, abc amico mio ! nx71@iNuvoPro ~ % echo ${pippo//abc/caro} Ciao caro Alfonso, caro amico mio !
Sostituzione parte finale di una stringa
[root@centos ~]# variabile=”Questa è una prova” [root@centos ~]# echo $variabile Questa è una prova [root@centos ~]# echo ${variabile%prova} bella giornata Questa è una bella giornata
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’ “{}” \;
Individuare tab in un file di testo
Per vedere se un file di testo contiene caratteri di tabulazione usare il comando: cat -T nomefile.txt
Individuare caratteri non stampabili
Per individuare i caratteri non stampabili in un file usare il comando: cat <nomefile> | od -c
Trovare righe duplicate
Per trovare le righe duplicate in un file usare il comando: sort <nomefile> | uniq -cd Questo comando stampa le righe duplicate con il numero di occorrenze.