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.
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 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 /^.//' dossierOn (.) Coincideix exactament amb un sol caràcter i (^) coincideix amb qualsevol caràcter al començament 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 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 /.$//'
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 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 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 . '
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 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.
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.
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.
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-5Aquesta 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.
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- | revAquesta ordre funciona primer invertint la cadena, després tallant el primer caràcter i, finalment, invertint-la de nou per obtenir la sortida desitjada.
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- | revAquesta 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.
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- |revAquesta 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.
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
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 -dHTambé podeu utilitzar seqüències interpretades per eliminar lletres minúscules o majúscules:
$trobo 'Hola com estàs?'| NS -d [: superior:]$trobo 'Hola com estàs?'| NS -d [:més baix:]
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'
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.
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.