Rimozione dei caratteri dalla stringa in bash

Rimozione dei caratteri dalla stringa in bash

A volte potrebbe essere necessario rimuovere i caratteri da una stringa. Qualunque sia il motivo, Linux ti fornisce vari strumenti integrati e utili che ti consentono di rimuovere i caratteri da una stringa in bash. Questo articolo mostra come utilizzare quegli strumenti per rimuovere i caratteri da una stringa.

L'articolo copre come eseguire quanto segue:

  • Rimuovere il carattere dalla stringa usando sed
  • Rimuovi il carattere dalla stringa usando AWK
  • Rimuovere il carattere dalla stringa usando il taglio
  • Rimuovere il carattere dalla stringa usando TR

I comandi mostrati in questo articolo sono stati eseguiti in Ubuntu 20.04 FOSSA FOCAL. Gli stessi comandi possono anche essere eseguiti su altre distribuzioni Linux che dispongono degli strumenti di cui sopra. Utilizzeremo l'applicazione del terminale predefinito per eseguire i comandi. È possibile accedere all'applicazione del terminale utilizzando la scorciatoia da tastiera Ctrl+Alt+T.

Rimuovere i caratteri dalla stringa usando sed

Sed è un'utilità potente e pratica utilizzata per la modifica dei flussi di testo. È un editor di testo non interattivo che consente di eseguire manipolazioni di testo di base sui flussi di input. Puoi anche usare SED per rimuovere i caratteri indesiderati dalle stringhe.

A fini dimostrativi, useremo una stringa di campionamento e poi la pipì al comando SED.

Rimuovere il carattere specifico dalla stringa

Usando SED, è possibile rimuovere un carattere specifico da una stringa. Ad esempio, per rimuovere "H" dalla stringa "Ciao, come stai?"Il comando sarebbe:

$ echo "ciao, come stai?"| Sed 's/h //'

Questo rimuoverà solo la prima occorrenza di "H" nella stringa.

Per rimuovere tutte le occorrenze di "H" dalla stringa, utilizzare il comando seguente:

$ echo "ciao, come stai?"| Sed 's/h // g'

Dove G sta per globale. Rimuoverà tutte le occorrenze di "H" nella stringa.

Rimuovi il primo carattere dalla stringa

Per rimuovere il primo carattere dalla stringa "Ciao, come stai?" Il comando sarebbe:

$ echo "ciao, come stai?"| Sed 's/^.// '

Dove (.) corrisponde esattamente a un singolo carattere e (^) corrisponde a qualsiasi carattere all'inizio della stringa.

Rimuovi l'ultimo carattere dalla stringa

Per rimuovere l'ultimo carattere dalla stringa "Ciao, come stai?" Il comando sarebbe:

$ echo "ciao, come stai?"| Sed 's/.$ // '

Dove (.) corrisponde esattamente a un singolo carattere e ($) corrisponde a qualsiasi carattere alla fine della stringa.

Rimuovi il primo e l'ultimo carattere dalla stringa

Per rimuovere il primo e l'ultimo carattere dalla stringa "Ciao, come stai?" Il comando sarebbe:

$ echo "ciao, come stai?"| Sed 's/^.//;S/.$ // '

Rimuovi i caratteri dalla stringa usando AWK

AWK è un potente linguaggio di scripting usato per la corrispondenza dei motivi, insieme all'elaborazione del testo. Awk ti consente di filtrare e trasformare il testo in vari modi. Puoi anche usare AWK per rimuovere i caratteri dalle stringhe.

Ai fini dimostrativi, useremo una stringa di esempio e quindi tu pipistreremo sul comando AWK.

Rimuovi il primo carattere da una stringa

Per rimuovere il primo carattere dalla stringa "Ciao, come stai?" Il comando sarebbe:

$ echo "ciao, come stai?"| awk 'stampa substr ($ 0, 2)'

Dove ($ 0) è l'intera stringa target e (2) è la posizione iniziale del carattere. Il comando sopra rimuove il primo carattere, "h," numero di carattere "1" e restituisce la stringa di destinazione a partire dal secondo carattere, "E.'

Rimuovi i primi due caratteri dalla stringa

Puoi anche rimuovere un numero specifico di caratteri dall'inizio di una stringa. Ad esempio, per rimuovere i primi due caratteri dalla stringa "Ciao, come stai?" Il comando sarebbe:

$ echo "ciao, come stai?"| awk 'stampa substr ($ 0, 3)'

Il comando sopra rimuoverà i primi due caratteri, "lui" o numeri di personaggio "1 e 2" e restituisce la stringa di destinazione a partire dal numero di carattere "3," o "L.'

Rimuovi l'ultimo carattere dalla stringa

Per rimuovere l'ultimo carattere da "Ciao, come stai?" Il comando sarebbe:

$ echo "ciao, come stai?"| awk 'stampa substr ($ 0, 1, lunghezza ($ 0) -1)'

Dove lunghezza ($ 0) -1 significa dedurre '1'Dalla lunghezza totale del carattere.

Il comando sopra stamperà la stringa che inizia con il numero di carattere '1' fino a lunghezza ($ 0) -1 per spogliare l'ultimo personaggio.

Ci sono '19'caratteri (compresi gli spazi) nella stringa sopra. Il comando funzionerà stampando tutti i caratteri, a partire dal carattere '1'e fino al carattere'18,"Mentre rimuovi l'ultimo personaggio"19.'

Rimuovi gli ultimi due caratteri dalla stringa

Per rimuovere gli ultimi due caratteri da "Ciao, come stai?"Il comando sarebbe:

$ echo "ciao, come stai?"| awk 'stampa substr ($ 0, 1, lunghezza ($ 0) -2)'

Dove lunghezza ($ 0) -2 significa dedurre '2'Dalla lunghezza totale del carattere.

Il comando sopra stamperà la stringa, a cominciare dal numero di carattere '1'e fino al numero del personaggio'lunghezza ($ 0) -2,'Per rimuovere gli ultimi due caratteri nella stringa.

Rimuovi entrambi i primi e gli ultimi caratteri dalla stringa

Per rimuovere sia il primo che gli ultimi caratteri dalla stringa "Ciao, come stai?" Il comando sarebbe:

$ echo "ciao, come stai?"| awk 'stampa substr ($ 0, 2, lunghezza ($ 0) - 2)'

Dove lunghezza ($ 0) -2 significa dedurre '2'Dalla lunghezza totale del carattere.

Il comando sopra stamperà la stringa, a cominciare dal numero di carattere '2'fino al numero del personaggio'lunghezza ($ 0) -2,'Per rimuovere il primo e l'ultimo carattere.

Rimuovere il carattere dalla stringa usando il taglio

Cut è uno strumento di riga di comando comunemente usato per estrarre una parte di testo da una stringa o file e stampare il risultato su un output standard. Puoi anche usare questo comando per rimuovere i caratteri da una stringa.

A fini dimostrativi, useremo una stringa di campionamento e poi la pipì al comando Cut.

Rimuovi il primo carattere dalla stringa

Per rimuovere il primo carattere dalla stringa, "Ciao, come stai?" Il comando sarebbe:

$ echo "ciao, come stai?"| Cut -c 2-

Questo comando stamperà la stringa, a partire dal secondo carattere, rimuovendo il primo carattere.

Rimuovi i primi quattro caratteri dalla stringa

Per rimuovere i primi quattro caratteri dalla stringa "Ciao, come stai?" Il comando sarebbe:

$ echo "ciao, come stai?"| Cut -c 5-

Questo comando stamperà la stringa, a partire dal quinto personaggio, rimuovendo i primi quattro caratteri.

String di stampa tra il 2 ° e il 5 ° caratteri

Per stampare la stringa "Ciao, come stai?" tra il secondo e il quinto personaggio, Il comando sarebbe:

$ echo "ciao, come stai?"| Cut -c 2-5

Questo comando stamperà la stringa, a partire dal secondo carattere e fino al quinto personaggio, rimuovendo i personaggi di inizio e fine.

Rimuovi l'ultimo carattere dalla stringa

Per rimuovere l'ultimo carattere dalla stringa "Ciao, come stai?" Usa il taglio comando con Rev, come segue:

$ echo "ciao, come stai?"| Rev | Cut -c2- | rev

Questo comando funziona prima invertendo la stringa, quindi tagliando il primo carattere e infine invertirlo di nuovo per darti l'output desiderato.

Rimuovi gli ultimi quattro caratteri dalla stringa

Per rimuovere gli ultimi quattro caratteri dalla linea "Ciao, come stai?" Il comando sarebbe:

$ echo "ciao, come stai?"| Rev | Cut -c5- | rev

Questo comando funziona prima invertendo la stringa, quindi tagliando i primi quattro caratteri, quindi invertirlo di nuovo per darti l'output desiderato.

Rimuovi i primi e gli ultimi caratteri dalla stringa

Per rimuovere il primo e gli ultimi caratteri dalla stringa "Ciao, come stai?" Usa il taglio comando con Rev, come segue:

$ echo "ciao mondo!"| Cut -c2- | rev | cut -c2- | rev

Questo comando funziona tagliando il primo carattere, quindi invertendo la stringa e tagliando il suo primo carattere, quindi invertirlo di nuovo per darti l'output desiderato.

Rimuovere il carattere dalla stringa usando TR

Il comando TR (abbreviazione per traduzione) viene utilizzato per tradurre, spremere ed eliminare i caratteri da una stringa. Puoi anche usare TR per rimuovere i caratteri da una stringa.

A fini dimostrativi, useremo una stringa di campionamento e poi la pipì al comando TR.

Rimuovi tutte le occorrenze del carattere

Usando il comando TR, è possibile rimuovere tutte le occorrenze di caratteri minuscoli o maiuscole dalla stringa. Ad esempio, per rimuovere tutte le occorrenze del carattere minuscolo 'H' dalla stringa, il comando sarebbe:

$ echo "ciao, come stai?"| tr -d h

Allo stesso modo, per rimuovere tutte le occorrenze del carattere maiuscola 'H' dalla stringa, il comando sarebbe:

$ echo "ciao, come stai?"| tr -d h

È inoltre possibile utilizzare le sequenze interpretate per rimuovere le lettere minuscole o maiuscole:

$ echo "ciao, come stai?"| tr -d [: superiore:]
$ echo "ciao, come stai?"| tr -d [: inferiore:]

Rimuovere tutte le occorrenze di caratteri minuscoli e maiuscoli

È inoltre possibile rimuovere tutte le occorrenze di caratteri minuscole e maiuscole da una stringa. Ad esempio, il seguente comando rimuoverà tutte le occorrenze del carattere "H", sia minuscola che maiuscola.

$ echo "ciao, come stai?"| tr -d 'hh'

Rimuovere tutte le occorrenze di caratteri in un intervallo specifico

Per rimuovere tutte le occorrenze di caratteri da una stringa nell'intervallo specifico "D-H", il comando sarebbe:

$ echo "ciao, come stai?"| tr -d 'd -h'

Questo comando rimuoverà tutti i caratteri nell'intervallo 'd-h' (d, e, f, g, h) nella stringa.

Conclusione

In Linux, ci sarà sempre più di un modo per svolgere un semplice lavoro. Lo stesso vale per la rimozione dei caratteri da una stringa. Questo articolo ti ha mostrato quattro modi diversi per farlo, insieme ad alcuni esempi per la rimozione di personaggi indesiderati da una stringa. Decidere quale strumento utilizzare dipende dalle tue preferenze e, soprattutto, da ciò che si desidera ottenere.