Eliminarea caracterelor din șir în Bash

Removing Characters From String Bash



Uneori, poate fi necesar să eliminați caractere dintr-un șir. Indiferent de motiv, Linux vă oferă diverse instrumente încorporate, la îndemână, care vă permit să eliminați caractere dintr-un șir din Bash. Acest articol vă arată cum să utilizați aceste instrumente pentru a elimina caractere dintr-un șir.

Articolul descrie cum să efectuați următoarele:







  • Eliminați caracterul din șir folosind sed
  • Eliminați caracterul din șir folosind awk
  • Eliminați caracterul din șir folosind tăiat
  • Eliminați caracterul din șir folosind tr

Comenzile prezentate în acest articol au fost efectuate în Ubuntu 20.04 Focal Fossa. Aceleași comenzi pot fi efectuate și pe alte distribuții Linux care au disponibile instrumentele de mai sus. Vom folosi aplicația Terminal implicită pentru a rula comenzile. Puteți accesa aplicația Terminal utilizând comanda rapidă de la tastatură Ctrl + Alt + T.



Eliminați caractere din șir folosind sed

Sed este un utilitar puternic și la îndemână folosit pentru editarea fluxurilor de text. Este un editor de text non-interactiv care vă permite să efectuați manipulări de bază ale textului pe fluxurile de intrare. De asemenea, puteți utiliza sed pentru a elimina caracterele nedorite din șiruri.



În scop demonstrativ, vom folosi un șir de probă și apoi îl vom trimite la comanda sed.





Eliminați caracterul specific din șir

Folosind sed, puteți elimina un anumit caracter dintr-un șir. De exemplu, pentru a elimina h din șir Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | sed 'SH//'

Aceasta va elimina doar prima apariție a „h” din șir.
Eliminați caracterul specific din șirul 1
Pentru a elimina toate aparițiile „h” din șir, utilizați următoarea comandă:



$aruncat 'Salut ce mai faci?' | sed „s / h // g”

Unde g înseamnă global. Va elimina toate aparițiile „h” din șir.
Eliminați caracterul specific din șirul 2

Eliminați primul caracter din șir

Pentru a elimina primul caracter din șir Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | sed „s /^.//” fişier

Unde (.) Se potrivește exact cu un singur caracter și (^) se potrivește cu orice caracter de la începutul șirului.
Eliminați primul caracter din șir

Eliminați ultimul caracter din șir

Pentru a elimina ultimul caracter din șir Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | sed „s /.$//”

Unde ( . ) se potrivește exact cu un singur caracter și ($) se potrivește cu orice caracter de la sfârșitul șirului.
Eliminați ultimul caracter din șir

Eliminați primul și ultimul caracter din șir

Pentru a elimina primul și ultimul caracter din șir Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | sed 's /^.//; s /.$//'

Eliminați primul și ultimul caracter din șir

Eliminați caractere din șir folosind awk

Awk este un limbaj de scriptare puternic folosit pentru potrivirea modelelor, împreună cu procesarea textului. Awk vă permite să filtrați și să transformați textul în diferite moduri. De asemenea, puteți utiliza awk pentru a elimina caractere din șiruri.

În scop demonstrativ, vom folosi un șir de probă și apoi îl vom trimite la comanda awk.

Eliminați primul caracter dintr-un șir

Pentru a elimina primul caracter din șir Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | awk „{print substr ($ 0, 2)}”

Unde ($ 0) este întregul șir țintă și (2) este poziția de pornire a caracterului. Comanda de mai sus elimină primul caracter, „h”, numărul de caractere „1” și returnează șirul țintă începând cu al doilea caracter, „e”.
Eliminați primul caracter dintr-un șir

Eliminați primele două caractere din șir

De asemenea, puteți elimina un anumit număr de caractere de la începutul unui șir. De exemplu, pentru a elimina primele două caractere din șir Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | awk „{print substr ($ 0, 3)}”

Comanda de mai sus va elimina primele două caractere, „el” sau numerele de caractere „1 și 2” și returnează șirul țintă începând cu numărul de caractere „3” sau „l”.
Eliminați primele două caractere din șir

Eliminați ultimul caracter din șir

Pentru a elimina ultimul caracter din Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | awk „{print substr ($ 0, 1, lungime ($ 0) -1)}”

Unde lungime (0 $) -1 înseamnă deducerea „ 1 'Din lungimea totală a caracterului.

Comanda de mai sus va imprima șirul începând cu numărul caracterului ‘ 1 ' pâna la lungime (0 $) -1 să dezbraci ultimul personaj.

Sunt ' 19 Caracterele (inclusiv spațiile) din șirul de mai sus. Comanda va funcționa imprimând toate caracterele, începând cu caracterul „ 1 'Și până la caracterul' 18 , 'În timp ce eliminați ultimul caracter' 19 . '

rmv last char frm string

Eliminați ultimele două caractere din șir

Pentru a elimina ultimele două caractere din Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | awk „{print substr ($ 0, 1, lungime ($ 0) -2)}”

Unde lungime (0 $) -2 înseamnă deducerea „ 2 'Din lungimea totală a caracterului.

Comanda de mai sus va imprima șirul, începând cu numărul caracterului ‘ 1 'Și până la numărul de caractere' lungime (0 $) -2 , ’Pentru a elimina ultimele două caractere din șir.
Eliminați ultimele două caractere din șir

Eliminați atât primele cât și ultimele caractere din șir

Pentru a elimina atât primul, cât și ultimul caracter din șir Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | awk „{print substr ($ 0, 2, lungime ($ 0) - 2)}”

Unde lungime (0 $) -2 înseamnă deducerea „ 2 'Din lungimea totală a caracterului.

Comanda de mai sus va imprima șirul, începând cu numărul caracterului ‘ 2 'Până la numărul de caractere' lungime (0 $) -2 , ’Pentru a elimina primul și ultimul caracter.

Eliminați atât primele cât și ultimele caractere din șir

Eliminați caracterul din șir folosind tăiere

Cut este un instrument de linie de comandă utilizat în mod obișnuit pentru a extrage o porțiune de text dintr-un șir sau fișier și a imprima rezultatul într-o ieșire standard. De asemenea, puteți utiliza această comandă pentru a elimina caractere dintr-un șir.

În scopuri demonstrative, vom folosi un șir de probă și apoi îl vom ține la comanda de tăiere.

Eliminați primul caracter din șir

Pentru a elimina primul caracter din șir, Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | a tăia -c 2-

Această comandă va imprima șirul, începând cu al doilea caracter, în timp ce elimină primul caracter.
rmv cut -c

Eliminați primele patru caractere din șir

Pentru a elimina primele patru caractere din șir Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | a tăia -c 5-

Această comandă va imprima șirul, începând de la al cincilea caracter, în timp ce va elimina primele patru caractere.
Eliminați primele patru caractere din șir

Imprimare șir între 2 și 5 caractere

Pentru a imprima șirul Salut ce mai faci? între al doilea și al cincilea personaj , comanda ar fi:

$aruncat 'Salut ce mai faci?' | a tăia -c 2-5

Această comandă va imprima șirul, începând de la al doilea caracter și până la cel de-al cincilea caracter, în timp ce elimină restul de caractere de început și de sfârșit.
rmv 2 și 5 c2

Eliminați ultimul caracter din șir

Pentru a elimina ultimul caracter din șir Salut ce mai faci? folosește a tăia comanda cu rev , după cum urmează:

$aruncat 'Salut ce mai faci?' | rev | a tăia -c2- | rev

Această comandă funcționează inversând mai întâi șirul, apoi tăind primul caracter și în cele din urmă inversându-l din nou pentru a vă oferi ieșirea dorită.
02 Eliminați ultimul caracter din șir

Eliminați ultimele patru caractere din șir

Pentru a elimina ultimele patru caractere de pe linie Salut ce mai faci? comanda ar fi:

$aruncat 'Salut ce mai faci?' | rev | a tăia -c5- | rev

Această comandă funcționează inversând mai întâi șirul, apoi tăind primele patru caractere și apoi inversând-o din nou pentru a vă oferi ieșirea dorită.
rmv ultimele patru caractere

Eliminați primul și ultimul caracter din șir

Pentru a elimina primul și ultimul caracter din șir Salut ce mai faci? folosește a tăia comanda cu rev , după cum urmează:

$aruncat 'Salut Lume!' | a tăia -c2- | rev | a tăia -c2- |rev

Această comandă funcționează prin tăierea primului caracter, apoi inversarea șirului și tăierea primului său caracter, și apoi inversarea acestuia din nou pentru a vă oferi ieșirea dorită.
rmv primul și ultimul

Eliminați caracterul din șir folosind tr

Comanda tr (prescurtare pentru traducere) este utilizată pentru a traduce, stoarce și șterge caractere dintr-un șir. De asemenea, puteți utiliza tr pentru a elimina caractere dintr-un șir.

În scopuri demonstrative, vom folosi un șir de eșantion și apoi îl vom trimite la comanda tr.

Eliminați toate aparițiile caracterului

Folosind comanda tr, puteți elimina toate aparițiile de caractere mici sau majuscule din șir. De exemplu, pentru a elimina toate aparițiile caracterului minuscul „h” din șir, comanda ar fi:

$aruncat 'Salut ce mai faci?' | NS -dh

eliminați toate aparițiile 01

În mod similar, pentru a elimina toate aparițiile caracterului majuscul „H” din șir, comanda ar fi:

$aruncat 'Salut ce mai faci?' | NS -dH

De asemenea, puteți utiliza secvențe interpretate pentru a elimina litere mici sau majuscule:

$aruncat 'Salut ce mai faci?'| NS -d [:superior:]

apariții mai mici

$aruncat 'Salut ce mai faci?'| NS -d [:inferior:]

apariții superioare

Eliminați toate aparițiile caracterelor minuscule și majuscule

De asemenea, puteți elimina toate aparițiile caracterelor minuscule și majuscule dintr-un șir. De exemplu, următoarea comandă va elimina toate aparițiile caracterului „h”, atât minuscule, cât și majuscule.

$aruncat 'Salut ce mai faci?' | NS -d„HH”

apariții superioare și inferioare

Eliminați toate aparițiile de caractere dintr-un anumit interval

Pentru a elimina toate aparițiile de caractere dintr-un șir din intervalul specific „d-h”, comanda ar fi:

$aruncat 'Salut ce mai faci?' | NS -d „d-h”

Această comandă va elimina toate caracterele din intervalul „d-h” (d, e, f, g, h) din șir.
intervalul specific de apariții

Concluzie

În Linux, va exista întotdeauna mai multe modalități de a realiza o treabă simplă. Același lucru este valabil și pentru eliminarea caracterelor dintr-un șir. Acest articol v-a arătat patru moduri diferite de a face acest lucru, împreună cu câteva exemple de eliminare a caracterelor nedorite dintr-un șir. A decide ce instrument să utilizați depinde de preferințele dvs. și, mai important, de ceea ce doriți să realizați.