Bash Eliminați ultimele x caractere din șir

Bash Remove Last X Characters From String



Uneori s-ar putea să trebuiască să ștergeți litere dintr-un șir. Oricare ar fi cazul, Linux include mai multe instrumente încorporate, utile pentru eliminarea literelor care formează un astfel de text în Bash. Acest articol demonstrează cum să ștergeți litere dintr-un șir folosind aceste metode. În acest post, instrucțiunile au fost rulate pe Ubuntu 20.04 Focal Fossa. Aceleași instrucțiuni pot fi rulate pe orice sistem Linux care are instalate utilitățile menționate mai sus. Pentru a executa instrucțiunile, vom utiliza terminalul obișnuit. Comanda rapidă Ctrl + Alt + T va deschide instrumentul Terminal.

Metoda 01: Substring Way

Prima noastră metodă de a elimina litere sau caractere dintr-un șir este mai mult ca a crea un șir de caractere dintr-unul original. Între timp, terminalul a fost deja deschis; vom face un fișier bash pentru a adăuga codul nostru bash. Astfel încât să putem face eliminarea caracterelor sau crearea de șiruri în ea. Deci, am folosit instrucțiunile tactile încorporate în shell-ul nostru pentru a crea un fișier bash.









Deoarece fișierul a fost generat rapid în folderul de start al Ubuntu 20.04, deschideți-l într-un editor pentru editare. Deci, alegem editorul GNU pentru a deschide documentul file.sh ca mai jos.







Copiați codul de mai jos. Acest cod conține extensie bash la început și, după aceea, am declarat o variabilă șir val cu o valoare șir. La cealaltă linie, folosim expresia ecou pentru a afișa această variabilă în terminal. Adevărata sarcină începe de aici. Am inițializat o variabilă nouă și i-am atribuit o valoare care este un șir al variabilei originale val. Am făcut-o menționând -14 în paranteze după două puncte duble. Acest lucru îi spune compilatorului că trebuie să elimine ultimele 14 litere din șirul original FirstWorldCountries. Literele rămase vor fi salvate în variabila new. În ultima linie, ecoul a fost folosit pentru a imprima noua variabilă nouă.



Executarea corectă a unui fișier file.sh folosind comanda bash apare conform așteptărilor. În primul rând, afișează valoarea primei variabile de șir val și, după aceea, Afișează valoarea șirului nou creat dintr-o primă variabilă conform rezultatului afișat.

Metoda 02: Utilizarea simbolurilor speciale

O altă metodă simplă și mai ușoară pentru a elimina ultimele litere sau caractere din orice șir este prin intermediul simbolurilor sau caracterelor speciale, de exemplu, simboluri de procent și semn de întrebare. Deci, de data aceasta vom folosi procentajul și semnul întrebării pentru a elimina caracterele din orice șir. Prin urmare, am deschis deja același fișier pentru a actualiza scriptul bash folosind un editor GNU Nano. Codul general este același, dar partea nouă variabilă este puțin diferită. Am folosit un semn procentual pentru a informa sistemul că numerele menționate de semne de întrebare reprezintă numărul de caractere dintr-o variabilă val care trebuie eliminate după acest semn procentual. Puteți vedea că am adăugat 9 simboluri semn de întrebare. Aceasta înseamnă că ultimele 9 caractere din șirul FirstWorldCountries vor fi eliminate, iar șirul rămas va fi FirstWorld. Acest șir rămas va fi apoi salvat într-o variabilă nouă.

Când am executat fișierul bash actualizat, ieșirea vine așa cum era anticipat. Afișează șirul original din prima variabilă și valoarea celei de-a doua variabile, nouă care a fost creată din variabila val.

Metoda 03: Utilizarea Sed

Sed este un instrument util și eficient pentru modificarea secvențelor de text. Acesta este un mediu de dezvoltare non-interactiv care vă permite să lucrați cu introducerea datelor și să efectuați transformări simple de text. De asemenea, puteți utiliza sed pentru a șterge litere din texte pe care nu le doriți. Vom folosi un exemplu de șir și îl vom direcționa în comanda sed în scop ilustrativ. Puteți șterge un anumit caracter dintr-un fel de șir cu sed. Deci, am folosit linia simplă a unui șir în instrucțiunea echo. Am folosit sed pentru a elimina litera A din șirul menționat. Asigurați-vă că urmați sintaxa „s / string_to_be_removed //”. Ieșirea arată că litera A a fost eliminată.

Pentru a elimina întregul cuvânt Aqsa am menționat primul și ultimul caracter al unui cuvânt cu punctele din interior pentru a reprezenta literele lipsă. Ieșirea arată șirul cu eliminarea cuvântului Aqsa.

Pentru a elimina orice număr de ultime caractere dintr-un șir, menționați numărul de puncte conform cerinței dvs. înainte de simbolul dolar așa cum se arată.

Metoda 04: Utilizarea Awk

Awk este un limbaj de script sofisticat care poate fi folosit pentru a se potrivi cu tiparele și a prelucra textele. Puteți utiliza Awk pentru a schimba și modifica intrarea într-o varietate de moduri diferite. De asemenea, puteți șterge litere din șiruri folosind awk. Awk pare puțin diferit de sed. De data aceasta am schimbat șirul cu Aqsa Yasin. Funcția awk va face substring prin metoda substr și îl va imprima în terminal. Lungimea funcției a fost utilizată pentru a demonstra numărul de litere eliminate din șirul menționat. Aici, lungimea ($ 0) -5 înseamnă să eliminați ultimele 5 caractere ale unui șir, iar restul va face parte dintr-un șir care va fi tipărit.

Am încercat să eliminăm ultimele 9 caractere dintr-un șir Aqsa Yasin și am obținut A ca șir de șir.

Metoda 05: Utilizarea Cut

Cut pare a fi un utilitar din linia de comandă pentru extragerea unei bucăți de text dintr-o astfel de frază sau document și imprimarea acestuia la ieșirea standard. Această operație poate fi folosită și pentru a elimina litere dintr-un fel de șir. Vom folosi o expresie de exemplu și o vom transmite instrucțiunii de tăiere în scopul testării. Deci, am folosit fraza Aqsa Yasin și am trecut-o la interogarea tăiată. După steagul –c, am definit gama de indici pentru un șir pentru a tăia caracterele dintr-un șir menționat. Va afișa caracterele de la indexul 1 la indexul 5. Indexul 5 a fost exclus aici. Ieșirea arată primele 4 caractere ca Aqsa.

De data aceasta vom folosi în mod diferit instrucțiunile de tăiere. Am folosit funcția rev pentru a inversa șirul. După inversarea unui șir, vom tăia primul caracter dintr-un șir. Steagul -c2-înseamnă că șirul nostru va fi caracterul 2. După aceea, funcția inversă este din nou folosită pentru a reveni la șir. Deci, de data aceasta am recuperat șirul original cu eliminarea ultimului caracter.

Pentru a elimina ultimele 7 caractere, trebuie doar să menționați -c7-în comanda de tăiere în timp ce utilizați și funcția inversă.

Concluzie:

Există mai multe metode pentru a face o sarcină de bază pe Linux. În mod similar, ștergerea caracterelor dintr-un text este posibilă. Acest articol a demonstrat cinci metode distincte pentru eliminarea caracterelor nedorite dintr-un șir, precum și unele instanțe. Orice instrument pe care îl alegeți depinde în totalitate de alegerea dvs. și, mai esențial, de ceea ce doriți să realizați.