Eliminació de caràcters de la cadena a Bash

Removing Characters From String Bash



De vegades, és possible que hagueu d’eliminar els caràcters d’una cadena. Qualsevol que sigui la raó, Linux us proporciona diverses eines integrades i útils que us permeten eliminar els caràcters d'una cadena de Bash. Aquest article mostra com utilitzar aquestes eines per eliminar caràcters d'una cadena.

L’article explica com es realitzen les accions següents:







  • Elimineu el caràcter de la cadena amb sed
  • Traieu el caràcter de la cadena amb awk
  • Traieu el caràcter de la cadena amb el tall
  • Elimineu el caràcter de la cadena amb tr

Les ordres que es mostren en aquest article es van realitzar a Ubuntu 20.04 Focal Fossa. Les mateixes ordres també es poden realitzar en altres distribucions de Linux que tinguin disponibles les eines anteriors. Utilitzarem l’aplicació Terminal per defecte per executar les ordres. Podeu accedir a l’aplicació Terminal mitjançant la drecera de teclat Ctrl + Alt + T.



Elimineu els caràcters de la cadena amb sed

Sed és una utilitat potent i pràctica que s’utilitza per editar fluxos de text. És un editor de text no interactiu que us permet realitzar manipulacions bàsiques de text en fluxos d’entrada. També podeu utilitzar sed per eliminar els personatges no desitjats de les cadenes.



A efectes de demostració, utilitzarem una cadena de mostra i, a continuació, la enviarem a l'ordre sed.





Elimina el caràcter específic de la cadena

Amb sed, podeu eliminar un caràcter específic d’una cadena. Per exemple, per eliminar h de la cadena Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | sed 's / h //'

Això només eliminarà la primera aparició de 'h' a la cadena.
Elimina el caràcter específic de la cadena1
Per eliminar totes les aparicions de 'h' de la cadena, utilitzeu l'ordre següent:



$trobo 'Hola com estàs?' | sed 's / h // g'

On g significa global. Eliminarà totes les aparicions de 'h' a la cadena.
Elimina el caràcter específic de la cadena2

Elimina el primer caràcter de la cadena

Per eliminar el primer caràcter de la cadena Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | sed 's /^.//' dossier

On (.) Coincideix exactament amb un sol caràcter i (^) coincideix amb qualsevol caràcter al començament de la cadena.
Elimina el primer caràcter de la cadena

Elimina l'últim caràcter de la cadena

Per eliminar l'últim caràcter de la cadena Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | sed 's /.$//'

On ( . ) coincideix exactament amb un sol caràcter i ($) coincideix amb qualsevol caràcter al final de la cadena.
Elimina l'últim caràcter de la cadena

Elimina el primer i l'últim caràcter de la cadena

Per eliminar el primer i l'últim caràcter de la cadena Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | sed 's /^.//; s /.$//'

Elimina el primer i l'últim caràcter de la cadena

Elimineu els caràcters de la cadena amb awk

Awk és un potent llenguatge de seqüència utilitzat per a la concordança de patrons, juntament amb el processament de text. Awk us permet filtrar i transformar text de diverses maneres. També podeu utilitzar awk per eliminar els caràcters de les cadenes.

A efectes de demostració, utilitzarem una cadena de mostra i, a continuació, la enviarem a l'ordre awk.

Elimina el primer caràcter d'una cadena

Per eliminar el primer caràcter de la cadena Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | awk '{print substr ($ 0, 2)}'

On ($ 0) és tota la cadena de destinació i (2) és la posició inicial del caràcter. L'ordre anterior elimina el primer caràcter, 'h', el número de caràcter '1' i retorna la cadena de destinació començant pel segon caràcter, 'e'.
Elimina el primer caràcter d'una cadena

Elimina els dos primers caràcters de la cadena

També podeu eliminar un nombre específic de caràcters del començament d'una cadena. Per exemple, per eliminar els dos primers caràcters de la cadena Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | awk '{print substr ($ 0, 3)}'

L'ordre anterior eliminarà els dos primers caràcters, 'ell' o els números de caràcter '1 i 2' i retornarà la cadena de destinació que comença amb el número de caràcter '3' o 'l'.
Elimina els dos primers caràcters de la cadena

Elimina l'últim caràcter de la cadena

Per eliminar l'últim caràcter de Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | awk '{print substr ($ 0, 1, longitud ($ 0) -1)}}'

On longitud (0 $) -1 significa deduir ' 1 'De la longitud total del caràcter.

L’ordre anterior imprimirà la cadena que comença amb el número de caràcter ‘ 1 ' Fins a longitud (0 $) -1 per treure l’últim personatge.

Hi ha ‘ 19 ’(Inclosos els espais) a la cadena anterior. L’ordre funcionarà imprimint tots els caràcters, començant pel caràcter ‘ 1 'I fins al personatge' 18 , 'Mentre es treu l'últim caràcter' 19 . '

rmv cadena de darrers caràcters

Elimineu els dos darrers caràcters de la cadena

Per eliminar els dos darrers caràcters de Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | awk '{print substr ($ 0, 1, longitud ($ 0) -2)}}'

On longitud (0 $) -2 significa deduir ' 2 'De la longitud total del caràcter.

L'ordre anterior imprimirà la cadena, començant pel número de caràcter ' 1 'I fins al número de caràcter' longitud (0 $) -2 , ’Per eliminar els dos darrers caràcters de la cadena.
Elimineu els dos darrers caràcters de la cadena

Elimineu els primers i els darrers caràcters de la cadena

Per eliminar tant el primer com l'últim caràcters de la cadena Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | awk '{print substr ($ 0, 2, longitud ($ 0) - 2)}'

On longitud (0 $) -2 significa deduir ' 2 'De la longitud total del caràcter.

L'ordre anterior imprimirà la cadena, començant pel número de caràcter ' 2 'Fins al número de caràcter' longitud (0 $) -2 , ’Per eliminar el primer i l’últim caràcter.

Elimineu els primers i els darrers caràcters de la cadena

Elimina el caràcter de la cadena mitjançant el tall

El tall és una eina de línia d'ordres que s'utilitza habitualment per extreure una porció de text d'una cadena o fitxer i imprimir el resultat a una sortida estàndard. També podeu utilitzar aquesta ordre per eliminar caràcters d'una cadena.

A efectes de demostració, utilitzarem una cadena de mostra i, a continuació, la canalitzarem a l'ordre de tallar.

Elimina el primer caràcter de la cadena

Per eliminar el primer caràcter de la cadena, Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | tallar -c 2-

Aquesta ordre imprimirà la cadena, començant pel segon caràcter, mentre s'elimina el primer caràcter.
rmv cut -c

Elimina els primers quatre caràcters de la cadena

Per eliminar els primers quatre caràcters de la cadena Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | tallar -c 5-

Aquesta ordre imprimirà la cadena, començant pel cinquè caràcter, mentre s'eliminaran els primers quatre caràcters.
Elimina els primers quatre caràcters de la cadena

Imprimeix la cadena entre el 2n i el 5è caràcter

Per imprimir la cadena Hola com estàs? entre el segon i el cinquè personatges , l'ordre seria:

$trobo 'Hola com estàs?' | tallar -c 2-5

Aquesta ordre imprimirà la cadena, començant des del segon caràcter i fins al cinquè caràcter, mentre que s'eliminaran els caràcters inicials i finals restants.
rmv 2n i 5è c2

Elimina l'últim caràcter de la cadena

Per eliminar l'últim caràcter de la cadena Hola com estàs? utilitzar el tallar ordre amb rev , com segueix:

$trobo 'Hola com estàs?' | rev | tallar -c2- | rev

Aquesta ordre funciona primer invertint la cadena, després tallant el primer caràcter i, finalment, invertint-la de nou per obtenir la sortida desitjada.
02 Elimina l’últim personatge de la cadena

Elimina els darrers quatre caràcters de la cadena

Per eliminar els últims quatre caràcters de la línia Hola com estàs? l'ordre seria:

$trobo 'Hola com estàs?' | rev | tallar -c5- | rev

Aquesta ordre funciona primer invertint la cadena, després tallant els primers quatre caràcters i, després, invertint-la de nou per obtenir la sortida desitjada.
rmv darrers quatre caràcters

Elimina els primers i els darrers caràcters de la cadena

Per eliminar el primer i l'últim caràcters de la cadena Hola com estàs? utilitzar el tallar ordre amb rev , com segueix:

$trobo 'Hola món!' | tallar -c2- | rev | tallar -c2- |rev

Aquesta ordre funciona tallant el primer caràcter, invertint la cadena i tallant el seu primer caràcter i, després, invertint-lo de nou per obtenir la sortida desitjada.
rmv primer i darrer

Elimina el caràcter de la cadena amb tr

L'ordre tr (abreviatura de traduir) s'utilitza per traduir, esprémer i suprimir caràcters d'una cadena. També podeu utilitzar tr per eliminar caràcters d'una cadena.

A efectes de demostració, utilitzarem una cadena de mostra i, a continuació, la enviarem a l'ordre tr.

Elimina totes les ocurrències del caràcter

Amb l'ordre tr, podeu eliminar totes les aparicions de caràcters minúscules o majúscules de la vostra cadena. Per exemple, per eliminar totes les aparicions del caràcter minúscul 'h' de la cadena, l'ordre seria:

$trobo 'Hola com estàs?' | NS -dh

elimina totes les ocurrències 01

De la mateixa manera, per eliminar totes les aparicions del caràcter majúscul 'H' de la cadena, l'ordre seria:

$trobo 'Hola com estàs?' | NS -dH

També podeu utilitzar seqüències interpretades per eliminar lletres minúscules o majúscules:

$trobo 'Hola com estàs?'| NS -d [: superior:]

ocurrències més baixes

$trobo 'Hola com estàs?'| NS -d [:més baix:]

ocurrències superiors

Elimina totes les ocurrències de caràcters minúscules i majúscules

També podeu eliminar totes les aparicions de caràcters minúscules i majúscules d'una cadena. Per exemple, l'ordre següent eliminarà totes les aparicions del caràcter 'h', tant en minúscules com en majúscules.

$trobo 'Hola com estàs?' | NS -d'HH'

ocurrències superiors i inferiors

Elimineu totes les ocurrències de caràcters d'un interval específic

Per eliminar totes les aparicions de caràcters d'una cadena de l'interval específic 'd-h', l'ordre seria:

$trobo 'Hola com estàs?' | NS -d 'd-h'

Aquesta ordre eliminarà tots els caràcters de l’interval ‘d-h’ (d, e, f, g, h) de la cadena.
intervals específics d’ocurrències

Conclusió

A Linux, sempre hi haurà més d’una manera de realitzar un treball senzill. El mateix passa amb l’eliminació de caràcters d’una cadena. En aquest article es mostren quatre maneres diferents de fer-ho, juntament amb alguns exemples d’eliminació de caràcters no desitjats d’una cadena. Decidir quina eina s'utilitza depèn de les vostres preferències i, el que és més important, del que vulgueu aconseguir.