Bash Eliminar los últimos x caracteres de la cadena

Bash Remove Last X Characters From String



A veces, es posible que tenga que eliminar letras de una cadena. Cualquiera que sea el caso, Linux incluye varias herramientas integradas y útiles para eliminar letras de un texto de este tipo en Bash. Este artículo muestra cómo eliminar letras de una cadena utilizando esos métodos. En esta publicación, las instrucciones se ejecutaron en Ubuntu 20.04 Focal Fossa. Las mismas instrucciones se pueden ejecutar en cualquier sistema Linux que tenga instaladas las utilidades mencionadas anteriormente. Para ejecutar las instrucciones, usaremos la Terminal habitual. El atajo Ctrl + Alt + T abrirá la herramienta Terminal.

Método 01: forma de subcadena

Nuestro primer método para eliminar letras o caracteres de una cadena es más como crear una subcadena a partir de una original. Mientras tanto, la terminal ya está abierta; haremos un archivo bash para agregar nuestro código bash. Para que podamos eliminar caracteres o crear subcadenas en él. Entonces, hemos usado la instrucción táctil incorporada en nuestro shell para crear un archivo bash.









Como el archivo se generó rápidamente en la carpeta de inicio de Ubuntu 20.04, ábralo en algún editor para editarlo. Entonces, elegimos el editor GNU para abrir el documento file.sh como se muestra a continuación.







Copie el código que se muestra a continuación. Este código contiene la extensión bash al principio, y después de eso, hemos declarado una variable de cadena val con un valor de cadena. En la otra línea, usamos la frase echo para mostrar esta variable en la terminal. La verdadera tarea comienza desde aquí. Hemos inicializado una variable nueva y le asignamos un valor que es una subcadena de la variable original val. Lo hemos hecho mencionando -14 entre llaves después de dos puntos dobles. Esto le dice al compilador que tiene que eliminar las últimas 14 letras de la cadena original FirstWorldCountries. Las letras restantes se guardarán en la variable new. En la última línea, el eco se ha utilizado para imprimir la nueva variable new.



La ejecución adecuada de un archivo file.sh utilizando el comando bash sale como se esperaba. En primer lugar, muestra el valor de la primera variable de cadena val, y después de eso, muestra el valor de la cadena recién creada a partir de una primera variable según el resultado que se muestra.

Método 02: uso de símbolos especiales

Otro método simple y más fácil para eliminar las últimas letras o caracteres de cualquier cadena es a través de los símbolos o caracteres especiales, por ejemplo, símbolos de porcentaje y signo de interrogación. Entonces, esta vez usaremos porcentaje y signo de interrogación para eliminar los caracteres de cualquier cadena. Por lo tanto, ya hemos abierto el mismo archivo para actualizar el script bash usando un editor GNU Nano. El código general es el mismo, pero la parte nueva variable es un poco diferente. Hemos utilizado un signo de porcentaje para que el sistema sepa que los números mencionados de signos de interrogación representan el número de caracteres de una variable val que se eliminarán después de este signo de porcentaje. Puede ver que hemos agregado 9 símbolos de interrogación. Esto significa que los últimos 9 caracteres de la cadena FirstWorldCountries se eliminarán y la cadena restante será FirstWorld. Esta cadena restante se guardará en una variable nueva.

Cuando hemos ejecutado el archivo bash actualizado, la salida llega como se anticipó. Muestra la cadena original de la primera variable y el valor de la segunda variable, nueva que se ha creado a partir de la variable val.

Método 03: Usando Sed

Sed es una herramienta útil y eficaz para modificar secuencias de texto. Ese es un entorno de desarrollo no interactivo que le permite trabajar con la entrada de datos y realizar transformaciones de texto simples. También puede usar sed para eliminar letras de textos que no desea. Usaremos una cadena de ejemplo y la enrutaremos al comando sed con fines ilustrativos. Puede eliminar un carácter en particular de algún tipo de cadena con sed. Entonces, hemos usado la línea simple de una cadena dentro de la declaración de eco. Hemos utilizado sed para eliminar la letra A de la cadena mencionada. Asegúrese de seguir la sintaxis 's / string_to_be_removed //'. La salida muestra que se ha eliminado la letra A.

Para eliminar toda la palabra Aqsa, hemos mencionado el primer y último carácter de una palabra con puntos dentro para representar las letras que faltan. La salida muestra la cadena con la eliminación de la palabra Aqsa.

Para eliminar cualquier número de los últimos caracteres de una cadena, mencione el número de puntos según su requisito antes del símbolo del dólar como se muestra.

Método 04: uso de Awk

Awk es un lenguaje de programación sofisticado que se puede utilizar para hacer coincidir patrones y procesar textos. Puede usar Awk para cambiar y modificar la entrada de varias formas diferentes. También puede eliminar letras de cadenas usando awk. Awk parece un poco diferente de sed. Esta vez hemos cambiado la cuerda con Aqsa Yasin. La función awk creará una subcadena a través del método substr y la imprimirá en la terminal. La longitud de la función se ha utilizado para demostrar el número de letras eliminadas de la cadena mencionada. Aquí, longitud ($ 0) -5 significa eliminar los últimos 5 caracteres de una cadena, y el resto será parte de una subcadena que se imprimirá.

Hemos intentado eliminar los últimos 9 caracteres de una cadena Aqsa Yasin y obtuvimos A como subcadena de salida.

Método 05: Usando Cortar

Cortar parece ser una utilidad de línea de comandos para extraer un fragmento de texto de una frase o documento de este tipo e imprimirlo en una salida estándar. Esta operación también se puede utilizar para eliminar letras de algún tipo de cadena. Usaremos una frase de ejemplo y la pasaremos a la instrucción de corte para fines de prueba. Así que usamos la frase Aqsa Yasin y la pasamos a la consulta de corte. Después de la bandera –c, hemos definido el rango de índices de una cadena para cortar los caracteres de una cadena mencionada. Mostrará los caracteres del índice 1 al índice 5. El índice 5 se ha excluido aquí. La salida muestra los primeros 4 caracteres como Aqsa.

Esta vez usaremos la instrucción de corte de manera diferente. Hemos utilizado la función rev para invertir la cadena. Después del reverso de una cadena, cortaremos el primer carácter de una cadena. La bandera -c2-significa que nuestra subcadena será el carácter 2 en adelante. Después de eso, la función reverse se usa nuevamente para revertir la cadena. Entonces, esta vez recuperamos la cadena original con la eliminación del último carácter.

Para eliminar los últimos 7 caracteres, solo tiene que mencionar -c7-en el comando de corte mientras usa la función inversa también.

Conclusión:

Hay más de un método para realizar una tarea básica en Linux. Del mismo modo, es posible eliminar caracteres de un texto. Este artículo demostró cinco métodos distintos para eliminar caracteres no deseados de una cadena, así como algunas instancias. Cualquiera que sea la herramienta que elija, depende completamente de su elección y, lo que es más importante, de lo que le gustaría lograr.