Programare BASH

Eliminarea caracterelor din șir în Bash

Eliminarea caracterelor din șir în Bash

Uneori, poate fi necesar să eliminați caractere dintr-un șir. Oricare ar fi motivul, 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:

Comenzile prezentate în acest articol au fost efectuate în Ubuntu 20.04 Focal Focal. 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 neinteractiv 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 șirul „Salut ce mai faci?”Comanda ar fi:

$ echo "salut, ce mai faci?"| sed 's / h //'

Aceasta va elimina doar prima apariție a „h” în șir.

Pentru a elimina toate aparițiile „h” din șir, utilizați următoarea comandă:

$ echo "salut, ce mai faci?"| sed 's / h // g'

Unde g înseamnă global. Va elimina toate aparițiile „h” din șir.

Eliminați primul caracter din șir

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

$ echo "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 ultimul caracter din șir

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

$ echo "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 primul și ultimul caracter din șir

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

$ echo "salut, ce mai faci?"| sed 's / ^.//; s /.$ // '

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:

$ echo "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 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:

$ echo "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 ultimul caracter din șir

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

$ echo "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 de caractere '1' pâna la lungime (0 $) -1 să dezbraci ultimul personaj.

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

Eliminați ultimele două caractere din șir

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

$ echo "salut, ce mai faci?"| awk 'print substr ($ 0, 1, lungime ($ 0) -2)' '

Unde lungime (0 USD) -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 USD) -2,'pentru a elimina 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:

$ echo "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 USD) -2,'pentru a elimina primul și ultimul caracter.

Eliminați caracterul din șir folosind tăiere

Cut este un instrument din linia 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 eliminarea caracterelor dintr-un șir.

În scopuri demonstrative, vom folosi un șir de probă și apoi îl vom trimite 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:

$ echo "salut, ce mai faci?"| tăiat -c 2-

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

Eliminați primele patru caractere din șir

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

$ echo "salut, ce mai faci?"| tăiat -c 5-

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

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:

$ echo "salut, ce mai faci?"| tăiat -c 2-5

Această comandă va imprima șirul, începând de la cel de-al doilea caracter și până la cel de-al cincilea caracter, eliminând în același timp caracterele de început și de sfârșit rămase.

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ă:

$ echo "salut, ce mai faci?"| rev | cut -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ă.

Eliminați ultimele patru caractere din șir

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

$ echo "salut, ce mai faci?"| rev | cut -c5- | rev

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

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ă:

$ echo "buna lume!"| tăiat -c2- | rev | tăiat -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ă.

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 scop demonstrativ, vom folosi un șir de probă și apoi îl vom trimite la comanda tr.

Eliminați toate aparițiile caracterului

Utilizând 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:

$ echo "Bună, ce mai faci?"| tr -d h

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

$ echo "Bună, ce mai faci?"| tr -d H

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

$ echo "Bună, ce mai faci?"| tr -d [: upper:]

$ echo "BUNA, ce mai faci?"| tr -d [: lower:]

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.

$ echo "Bună, ce mai faci?"| tr -d 'hH'

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:

$ echo "salut, ce mai faci?"| tr -d 'd-h'

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

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.

Microsoft Sculpt Touch Wireless Mouse Review
I recently read about the Microsoft Sculpt Touch wireless mouse and decided to buy it. After using it for a while, I decided to share my experience wi...
AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...
Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...