Rinominare un gruppo di file in base ad una regexpr

Supponiamo di voler rinominare il nome di un gruppo di file che hanno il seguente template: file1_tmp.sh file2_tmp.sh … file99_tmp.sh e supponiamo di voler togliere la parte centrale ‘_tmp’ in tutti i file. Possiamo utilizzare il comando “rename” o “prename”: rename ‘s/_tmp//’ *.sh   Vedi tutte le FAQs

Stampare solo la linea 25 di un file

Supponiamo di voler stampare solamente una singola linea di un file, che per comodità indichiamo con la linea 25 perl -ne ‘$. == 25 && print && exit’ file.txt Naturalmente se vogliamo stampare anche le righe 31 e 57 perl -ne ‘($. == 25 || $. == 31 || $. == 57) && print’ file.txt Continua a leggere

Encode/decode un file o stringa in Mime Base64

Supponiamo aver una stringa “Prova encode” ed un file “prova.txt” da voler encodare in Mime base64. Per risolvere il problema possiamo semplicemente lanciare la riga di comando: perl -MMIME::Base64 -e ‘print encode_base64(“Prova encode”)’ perl -MMIME::Base64 -0777 -ne ‘print encode_base64($_)’ prova.txt Per l’operazione inversa basta fare: perl -MMIME::Base64 -le ‘print decode_base64(“stringa in base64”)’ perl -MMIME::Base64 -ne Continua a leggere

Numerare un file di testo

Supponiamo di avere un file di testo (prova.txt) che vogliamo numerare. Possiamo utilizzare: perl -pe ‘$_ = “$. $_”‘ prova.txt Se si vuole simulare l’output di cat -n prova.txt basta usare: perl -ne ‘printf “% 5d %s”, $., $_’ prova.tx Per togliere la numerazione possiamo utilizzare: perl -pe ‘s/^\s*\d+\s*//’ prova.txt Vedi tutte le FAQs

Estrarre tutte le chiavi GPG pubbliche da un file

Supponiamo di avere un file di nome “file-con-chiavi-gpg” e di volerle estrarre eliminando ogni altra riga presente nel file. perl -ne ‘print if /—–BEGIN PGP PUBLIC KEY BLOCK—–/../—–END PGP PUBLIC KEY BLOCK—–/’ file-con-chiavi-gpg Naturalmente estrapolando la logica potremmo voler stampare tutte le righe comprese tra due regexp perl -ne ‘print if /regex1/../regex2/’ file.txt Vedi tutte Continua a leggere