Ejemplos de cadena dividida de bash

Ejemplos de cadena dividida de bash
Necesitamos dividir los datos de cadena para varios fines en la programación. Muchos lenguajes de programación tienen una función incorporada llamada 'Split' para dividir cualquier datos de cadena en múltiples partes. Pero no hay una función incorporada en Bash para dividir la cadena. Normalmente, los delimitadores individuales o múltiples se utilizan para dividir cualquier datos de cadena. La forma en que puede dividir la cadena en Bash se muestra en este tutorial utilizando diferentes ejemplos.


Usando la variable $ IFS

La variable de shell especial $ ifs se usa en bash para dividir una cadena en palabras. $ IFS La variable se llama separador de campo interno (IFS) que se usa para asignar el delimitador específico para dividir la cadena. Los límites de las palabras se identifican en Bash por $ IFS. El espacio en blanco es el valor de delimitador predeterminado para esta variable. Cualquier otro valor como '\ t', '\ n', '-' etc. Se puede usar como delimitador. Después de asignar el valor a la variable $ ifs, el valor de la cadena puede ser leído mediante dos opciones. Estos son '-r' y '-a'. La opción, '-r' se usa para leer Backslash (\) como carácter en lugar de carácter de escape y la opción '-----A' se usa para almacenar las palabras divididas en una variable de matriz. La cadena se puede dividir sin usar la variable $ ifs en bash. En los siguientes ejemplos se muestran diferentes formas de dividir los datos de cadena (con $ ifs o sin $ ifs).

Ejemplo-1: cadena dividida basada en el espacio

El valor de la cadena se divide por espacio en blanco por defecto. Crear un archivo llamado 'Split1.sh 'y agregue el siguiente código. Aquí, la variable de texto $ se usa para asignar un valor de cadena. La variable de shell, $ ifs se usa para asignar el carácter que se utilizará para dividir los datos de la cadena. El espacio se usa en este script como separador. '-A' se usa el comando de lectura para almacenar los datos divididos en una variable de matriz llamada $ strarr. El bucle 'para' se usa para leer cada elemento de la matriz, $ strarr.

división.mierda

#!/bin/bash
#Define el valor de la cadena
Text = "Bienvenido a Linuxhint"
# Establecer espacio como delimitador
Ifs = "
#Realice las palabras divididas en una matriz basada en delimitador del espacio
Leer -A Strarr <<< "$text"
#Cuenta con las palabras totales
echo "Hay $ #strarr [*] palabras en el texto."
# Imprima cada valor de la matriz usando el bucle
para val en "$ strarr [@]";
hacer
printf "$ val \ n"
hecho

Producción:

Ejecutar el guión.

$ bash split1.mierda

La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-2: cadena dividida basada en un personaje en particular

Cualquier carácter específico se puede usar como separador para dividir el valor de la cadena. Crea un archivo llamado Split2.mierda y agregue el siguiente código. Aquí, el nombre del libro, el nombre del autor y el valor del precio se toman agregando coma (,) como una cadena de entrada. A continuación, el valor de la cadena se divide y se almacena en una matriz basada en el valor de la variable shell, $ ifs. Cada valor de los elementos de la matriz se imprime por el valor del índice.

Split2.mierda

#!/bin/bash
#Leer el valor de la cadena
echo "Ingrese el nombre del libro, el nombre y el precio del autor separando la coma. "
Lea el texto
# Establezca la coma como delimitador
Ifs = ','
#Realice las palabras divididas en una matriz basada en delimitador de coma
Leer -A Strarr <<< "$text"
#Imprima las palabras divididas
echo "Nombre del libro: $ Strarr [0]"
echo "Nombre del autor: $ Strarr [1]"
echo "precio: $ strarr [2]"

Producción:

Ejecutar el guión.

$ bash split2.mierda

La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-3: divida la cadena sin $ ifs variable

Este ejemplo muestra cómo el valor de la cadena se puede dividir sin usar $ ifs en bash. Crear un archivo llamado 'Split3.mierda y agregue el siguiente código. Según el guión, un valor de texto con el colon(:) tiene que tomar como entrada para dividir. Aquí, el comando 'ReadArray' con la opción -d se usa para dividir los datos de la cadena. La opción '-d' se usa para definir el carácter del separador en el comando como $ ifs. A continuación, se usa el bucle 'para' para imprimir los elementos de la matriz.

Split3.mierda

#!/bin/bash
#Lee la cadena principal
Echo "Ingrese la cadena con colon (:) para dividir"
Leer Mainstr
#Splica la cadena basada en el delimitador, ':'
readArray -d: -t strarr <<< "$mainstr"
printf "\ n"
# Imprima cada valor de la matriz usando el bucle
para ((n = 0; n < $#strarr[*]; n++))
hacer
echo "$ strarr [n]"
hecho

Producción:

Ejecutar el guión.

$ bash split3.mierda

La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-4: divida la cadena con un delimitador de varios caracteres

El valor de la cadena es dividido por un delimitador de un solo carácter en todos los ejemplos anteriores. En este ejemplo, se muestra cómo puede dividir la cadena usando delimitador multi-caracteres. Crea un archivo llamado 'Split4.mierda y agregue el siguiente código. Aquí, la variable de texto $ se utiliza para almacenar datos de cadena. $ Delimiter Variable se usa para asignar datos de varios caracteres que se usan como delimitador en las siguientes declaraciones. $ MyArray Variable se usa para almacenar cada datos divididos como un elemento de matriz. Finalmente, todos los datos divididos se imprimen utilizando el bucle 'para'.

Split4.mierda

#!/bin/bash
#Define la cadena para dividir
text = "LearnHtmllLearnphplearnMysqllLearnJavaScript"
#Define delimitador multi-caracteres
delimiter = "aprender"
#Concatenate el delimitador con la cadena principal
cadena = $ text $ delimiter
#Splica el texto basado en el delimitador
myArray = ()
while [$ string]]; hacer
myArray+= ("$ String %%" $ delimitador "*")
String = $ String#*"$ delimitador"
hecho
#Imprima las palabras después de la división
por valor en $ myArray [@]
hacer
echo -n "$ valor"
hecho
printf "\ n"

Producción:

Ejecutar el guión.

$ bash split4.mierda

La siguiente salida aparecerá después de ejecutar el script.

Conclusión:

Los datos de cadena deben dividirse para diferentes fines de programación. Varias formas de dividir los datos de cadenas en Bash se muestran en este tutorial. Esperanza, después de practicar los ejemplos anteriores, los lectores podrán dividir cualquier datos de cadena en función de sus requisitos.

Para más información, mira el video!