Articles

Usando il comando tr in Linux per giocare con i caratteri

Posted by admin

il comando tr in Linux traduce un set di caratteri in un altro. Può sostituire un carattere o un insieme di caratteri con un altro carattere o insieme di caratteri. tr legge l’ingresso dallo standard input e visualizza l’uscita sullo standard output. L’input può anche essere dato in un file o usando il comando echo.

tr è l’abbreviazione di translate.,

Il formato standard per il comando tr è:

$ tr 

In base alle opzioni specificate, il comando tr sostituisce il set di caratteri in “set 1” con “set 2”.

Sostituzione dei caratteri

Per sostituire i caratteri usando il comando tr è sufficiente menzionare i caratteri da sostituire nel 1 ° set e i caratteri che devono essere messi al loro posto dopo la sostituzione nel 2 ° set.

$ tr 'a' '1'

Questo comando attenderà l’input da STDIN., Dopo aver ottenuto l’input, l’output sullo schermo apparirà con tutte le istanze di ‘ a ‘sostituite da’1’.

l’Utilizzo di eco con il comando tr

L’esempio precedente legge l’input da STDIN. Il comando Echo può fornire input insieme al comando tr. Utilizzare Pipe ( / ) operatore per eseguire i comandi insieme.,

$ echo "apples and bananas" | tr 'a' '1'

Prendere l’input da un file

tr può anche prendere l’input da un file. Questo è utile quando la traduzione deve essere fatta su una voluminosa raccolta di testo. L’operatore di reindirizzamento (<) viene utilizzato per fornire input da un file.

$ tr 'a' '1' < input.txt

input.txt contiene lo stesso testo dell’esempio precedente.,

Per salvare il testo in un file utilizzare il reindirizzamento(>) operatore per reindirizzare l’output a un file.

$ tr 'a' '1' < input.txt > output.txt

Cambiare il caso del testo con il comando tr

Uno degli usi più comuni del comando tr è tradurre il testo da minuscolo a maiuscolo o viceversa.

Poiché tr funziona su set di caratteri, possiamo menzionare esplicitamente il set di caratteri minuscoli come set 1 e il set di caratteri maiuscoli come set 2 per effettuare il passaggio.,

$ echo "apples and bananas" | tr a-z A-Z

Set a-z rappresenta l’insieme di lettere minuscole e l’insieme A-Z rappresenta l’insieme di lettere maiuscole.

Un altro modo per fare lo stesso è:

$ echo "apples and bananas" | tr 

Qui, rappresenta l’insieme di alfabeti minuscoli e rappresenta l’insieme di alfabeti maiuscoli.

Eliminazione di caratteri con tr

tr ha la capacità di eliminare un insieme di caratteri dal testo. Ciò si ottiene utilizzando tr insieme al comando-D.,

$ echo "apples and bananas" | tr -d 'n'

Questo comando eliminerà tutte le occorrenze di ‘n’ nel testo.

Per rimuovere le occorrenze di più caratteri, menzionare tutti i caratteri in un’unica citazione.

$ echo "apples and bananas" | tr -d 'na'

Questo comando rimuove la occorrenze di ‘n’ e ‘un’

Dal momento che tr opere sul livello del personaggio, tutte le singole occorrenze di ‘n’ e ‘un’ vengono rimossi., È facile sbagliare e pensare che il comando rimuoverà solo le occorrenze di ‘na’ che si verificano in quella sequenza. Tuttavia, non è così.

Spremere più occorrenze in una

Spremere più occorrenze in una può essere utile per comprimere il testo. Viene spesso utilizzato per rimuovere istanze di più spazi tra le righe.

-l’opzione s viene utilizzata con tr per spremere.,

$ echo "apples and bananas" | tr -s 'p'

Più occorrenze di ‘p’ in apple sono stati ridotti a una singola occorrenza.

$ echo "apples and bananas" | tr -s 'na' '1'

L’output di questo comando è equivalente a quella di prima di sostituire le occorrenze di caratteri ‘n’ e ‘a‘ con ‘1’, seguita da una compressione operazione. Per confrontare guarda il secondo comando nell’output., Il risultato del secondo comando è di semplice sostituzione dei caratteri.

Comprimiamo tutti gli 1 nell’output del secondo comando per vedere se otteniamo lo stesso output del primo.

Otteniamo lo stesso output del primo comando nell’output.,

Per rimuovere consecutivi spazi nel testo :

$ echo "apples and bananas" | tr -s " " 

in Alternativa, può essere usato al posto di ” “

$ echo "apples and bananas" | tr -s 

Estrazione di cifre fuori testo

Per raggiungere operazioni di cui solo un particolare set di caratteri che devono essere conservati. È meglio usare l’opzione-C. – c è usato per completare il set.

Complemento di un set significa tutto il resto diverso da ciò che è in quel set.,

$ echo " Home : 011 1234 4321" | tr -cd ,'\n' 

Menzionare ‘\n’ (nuova riga) è importante in quanto altrimenti l’output non ha newline e si confonde con la riga successiva nel terminale. Un altro motivo per non ignorare le newline durante l’eliminazione dei caratteri è che il file potrebbe avere più cifre in più righe. Se il carattere di nuova riga viene eliminato, tutti i numeri appariranno insieme senza spazio.,

senza ‘\n’

Estrazione di parole di testo

Questo processo è l’esatto opposto di quello svolto in precedenza. Qui ignoreremo le cifre e ci concentreremo solo sulle parole composte da lettere.

$ echo " Home : 011 1234 4321" | tr -d 

In questo esempio abbiamo semplicemente cancellato tutte le cifre dal testo.

Un modo più controllato per fare lo stesso sarebbe attraverso il complemento.,

$ echo " Home : 011 1234 4321" | tr -cd ,'\n'

rappresenta l’insieme di alfabeti. Pensate a come una raccolta dei due set, inferiore e superiore.

 = + 

Contare il numero di occorrenze di parole

Contare quante volte una parola appare in un testo può essere utile per creare istogrammi. È anche molto utile nella costruzione di modelli probabilistici per il rilevamento dello spam via email.

Per prima cosa, creiamo un file con alcune parole ricorrenti.,

A volte può essere utile visualizzare ogni parola del testo in una nuova riga.

$ tr -cs "" "\n" < input.txt
La lista continua. In uscita è stato tagliato corto per adattarsi

ottenere il numero di occorrenze di ogni parola di utilizzare:

$ tr -cs "" "\n" < input.txt | sort | uniq -c

Ordinare è utilizzato per ordinare l’elenco lexicographically., uniq-c conta le singole occorrenze di ogni parola e emette il risultato come un elenco di parole con un conteggio.

Conclusione

il comando tr è utile per eseguire traduzioni basate sui caratteri. Quando combinato con altri comandi come sort o uniq, il comando tr può rivelarsi molto potente. Per saperne di più sul comando tr sulla sua pagina man. Quando si applicano trasformazioni su un’intera riga, è possibile utilizzare il comando sed.

Leave A Comment