Oggi mi va di parlare del comando dd.
dd sta per data duplicator e il suo compito è quello di effettuare copie di dati.
La mia intenzione non è quella di spiegare in modo pedissequo tutto ciò che dd può fare (non ne sarei nemmeno capace), bensì di mettere in evidenza una sua funzione (che definirei marginale) non molto conosciuta.
Ho scoperto, infatti, che dd riesce a convertire i caratteri di un file .txt dal minuscolo al maiuscolo e dal maiuscolo al minuscolo.
Partiamo dal file di testo, che ho nominato file1
Il file si trova sulla scrivania; perciò apro il terminale e digito
$ cd Scrivania
Ora, per effettuare la conversione dei caratteri dal minuscolo al maiuscolo, digito
$ dd if=file1 conv=ucase of=file2
Questa riga di comando può sembrare complicata, ma in effetti non lo è.
Premesso che ci stiamo occupando della conversione in maiuscolo dei caratteri di un file di testo,
per prima cosa dobbiamo prendere in considerazione il file in entrata (if=file input) e il file in uscita (of=file output)
Una volta stabilito che if e of stanno rispettivamente per file-in e file-out, dobbiamo specificare a dd cosa deve fare.
Ed ecco che entra in scena l'opzione conv.
Conv sta per conversione. Ma in cosa consiste questa conversione?
Entra così in gioco un ulteriore elemento: Ucase. Ucase è uno dei tanti simboli che l'operando conv può assumere e sta per "convertire in maiuscolo".
Ecco allora il contenuto del file2 (file output)
Per effettuare, invece, la conversione dal maiuscolo al minuscolo utilizzeremo quest'altra riga
$ dd if=file2 conv=lcase of=file1
In tal caso conv=lcase sta per convertire in minuscolo.
Ciao! :)
dd è un tool a dir poco eccezionale! Non conoscevo questa sua capacità (non conosco molto le sue capacità in effetti) :)
RispondiEliminaIo per conversioni di questo tipo ho sempre usato tr:
tr a-z A-Z < file1
Il problema è che non salva su un file, allora:
tr a-z A-Z < file > file2
E' un po' strano usare dd per fare queste cose, pero' cosi' chi non lo conosce puo' prendere familiarita' con dd che e' uno strumento bello potente.
RispondiEliminaCosa piu' importante, come finisce la barzelletta?
@Mattux
RispondiEliminaTr è un altro tool che mi affascina. Un altro modo per convertire caratteri di un file in maiuscolo con tr è il seguente:
cat file1 | tr '[:upper:][:lower:]' '[:lower:][:upper:]' >file2
:D
@Idl
RispondiEliminaMi dispiace ma la barzellettà non ha un finale. O meglio, non ha un finale lieto; infatti il figlio muore prima di svelare il suo gran segreto. :(
Ma si può anche fare così
RispondiEliminaecho "test" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'
@lightuono
RispondiEliminaE che magari così converte i caratteri di un file di testo. Giusto? :D
cat file1 | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' >file2
si oppure
RispondiEliminased -i 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' file1
@Bit3Lux @Lightuono Che figo poter fare le cose in n modi diversi :D
RispondiEliminaComunque sed prima o poi devo imparare a usarlo :\
davvero un bel post!
RispondiEliminaMa tutti quanti vorremmo sapere a che cavolo gli servivano quelle palline?! xD
@Picchio
RispondiEliminaGrazie Picchio. Circa l'utilizzo di quelle palline, mi dispiace ma non l'ho mai saputo. :D