Tenendo conto dell'importanza del comando SED; La nostra guida di oggi esplorerà diversi modi per rimuovere i caratteri speciali usando il comando sed in ubuntu.
La sintassi del comando SED è scritta di seguito:
Sintassi
comando sed [options] [nome file]
A volte i caratteri speciali possono essere una necessità del contenuto scritto in un file di testo ma se vengono utilizzati inutilmente, renderà il file disordinato e ci sono possibilità che il lettore non possa prestare attenzione, risultando così in un documento senza scopo.
Come usare sed per rimuovere i caratteri speciali in Ubuntu
Questa sezione descriverà brevemente i modi per rimuovere i caratteri speciali da un file di testo usando SED; Dipende dal numero di caratteri nel tuo file che si desidera rimuovere; Ci possono essere due possibilità durante la rimozione dei caratteri da un file, o si desidera rimuovere un singolo carattere speciale, oppure si desidera rimuovere più caratteri contemporaneamente. Da queste possibilità indicate sopra, abbiamo esteso questa sezione a due metodi che affronteranno entrambe le possibilità:
Metodo 1: come rimuovere un singolo carattere usando sed
Metodo 2: come rimuovere più caratteri contemporaneamente usando sed
Il primo metodo affronta la prima possibilità e la seconda possibilità sarà discussa nel metodo 2, scaviamo in esse uno per uno:
Metodo 1: come rimuovere un singolo carattere speciale usando sed
Abbiamo creato un file di testo "cap.TXT"Questo contiene pochi caratteri speciali su righe diverse; Di seguito viene visualizzato il contenuto all'interno del file:
$ CAT CH.TXT
Puoi notare che il contenuto all'interno "cap.TXT"È difficile da leggere; Ad esempio, vogliamo rimuovere il personaggio "#" dal file di testo; Per questo, dobbiamo usare il seguente comando per rimuovere "#" dall'intero documento:
$ sed 's/\#// g' ch.TXT
Inoltre, se si desidera rimuovere il carattere speciale dalla riga specifica; Per questo, è necessario inserire il numero di riga accanto alla parola chiave "S" poiché il comando indicato di seguito rimuoverà solo "#" dal numero 3 della riga::
$ sed '3s/\#// g' ch.TXT
Metodo 2: come rimuovere più caratteri contemporaneamente usando sed
Ora abbiamo un altro file "file.TXT"Questo contiene più di un tipo di carattere e vogliamo rimuoverli in un singolo GO. In questo metodo la sintassi viene modificata un po 'dal comando sopra; Ad esempio, dobbiamo rimuovere cinque caratteri "#$%*@" da "file.TXT";
In primo luogo, guarda il contenuto di "file.TXT"Poiché le parole vengono interrotte da questi personaggi;
$ cat file.TXT
Il comando indicato di seguito aiuterà a rimuovere tutti questi caratteri speciali da "file.TXT":
$ sed 's/[#$%*@] // g'.TXT
Qui possiamo disegnare un altro esempio, diciamo che vogliamo rimuovere solo pochi caratteri da righe specifiche.
Abbiamo creato un nuovo file e il contenuto di "nuovo file.TXT"È mostrato di seguito:
$ cat newfile.TXT
Per questo, abbiamo scritto comando che eliminerà "#@" E "%*"Dalle righe 2 e 3 di"nuovo file.TXT"Rispettivamente.
$ sed '2s/[#@] // g; 3s/[%*] // g 'newfile.TXT
Il comando SED utilizzato nei metodi sopra visualizzerà il risultato solo sul terminale anziché applicare le modifiche nel file di testo: per questo, dobbiamo utilizzare l'opzione "-i" del comando SED. Può essere utilizzato con qualsiasi comando SED e le modifiche verranno apportate al file invece di stampare sul terminale.
Conclusione
Apparentemente, il comando SED funge da solito editor di testo ma ha un elenco di azioni molto più ampio rispetto ad altri redattori. Devi solo scrivere un comando e le modifiche verranno apportate automaticamente; Questa funzione attira gli appassionati di Linux o gli utenti che preferiscono il terminale su GUI. Seguendo le vantaggiose funzionalità di SED; La nostra guida è focalizzata sulla rimozione di caratteri speciali dal file di testo. Se confrontiamo solo questa funzione del comando SED con altri redattori, è necessario cercare caratteri in tutto il file e quindi rimuoverli uno per uno è un processo noioso. D'altra parte, SED esegue la stessa azione scrivendo un comando a riga singolo sul terminale.