Programación BASH

Cómo usar $ IFS en Bash?

Cómo usar $ IFS en Bash?
En las secuencias de comandos, debemos romper los datos de la cadena por una variedad de razones. Split es una función integrada en muchos lenguajes informáticos que divide cada cadena de datos en varias partes. Sin embargo, bash carece de una función incorporada para dividir una cadena. Para romper cualquier valor de cadena, hay muchos delimitadores simples y compuestos que se pueden usar. Se está utilizando un IFS (Separador de campo interno) variable para especificar un delimitador particular para la división de cadenas. En esta guía, aprenderá a usar varios métodos para ilustrar el proceso de romper un valor de cadena en bash usando $ IFS.

Prerrequisitos

Asegúrese de tener el sistema basado en Linux instalado y configurado. Trabajaremos en Ubuntu 20.04 sistema Linux. Inicie sesión desde el usuario de su cuenta de Ubuntu para comenzar a trabajar en IFS. Será mejor si inicia sesión desde su cuenta de usuario root. Después de iniciar sesión, inicie la terminal de línea de comandos en su sistema desde el área Actividad.

Ejemplo 01: IFS divide una cadena usando espacio como valor

Para nuestro primer ejemplo, entenderemos el concepto de dividir una cadena en bash mientras usamos el espacio como valor delimitador usando la variable IFS. Primero, tenemos que crear un archivo bash en nuestro sistema. Podemos crear nuevos archivos en nuestro sistema Linux usando el comando 'touch'. Como se muestra a continuación, hemos creado un archivo bash 'file1.sh 'usando la instrucción' touch ':

$ touch file1.sh

Abra el directorio de inicio de su sistema Linux usando el icono de carpeta que se muestra en la esquina izquierda de su Ubuntu 20.04 escritorio. Encontrará el archivo bash recién creado “file1.sh "en eso. Abra el archivo "file1.sh ”y escriba el siguiente script. Primero, hemos definido una cadena llamada "str" ​​con algún valor de cadena en ella. Luego, definimos una variable delimitadora IFS como una variable que tiene el espacio como valor. Después de eso, usamos la declaración de lectura para guardar y leer los datos divididos en una matriz "strarr" usando la bandera "-a". Una declaración 'echo' se usa para imprimir una línea de cadena junto con el recuento de palabras totales de una matriz usando "$ # strarr [*]". El ciclo "for" se utiliza para imprimir los valores de una matriz en forma dividida utilizando la variable "var". La barra invertida "\ n" se ha utilizado dentro de la línea de impresión junto con la variable "var" para dar un salto de división de una línea después de cada valor de la matriz. Guarde el script con la tecla "Ctrl + S" y cierre el archivo para continuar.

Vuelve al lado de la terminal. Ahora, comprobaremos la salida del código anterior. Para esto, usaremos el comando 'bash' junto con el nombre de un archivo “file1.sh ”para ejecutarlo, que se muestra a continuación. Primero, mostraba la línea mencionada en la declaración "echo" junto con el recuento de palabras de una matriz. Después de eso, mostró todos los valores de la matriz usando el bucle "for" dividido por IFS.

$ bash file1.sh

Ejemplo 02: IFS divide una cadena usando un carácter como valor

En el ejemplo mencionado anteriormente, ha visto cómo dividir las variables de cadena en partes mientras usa el espacio como delimitador de IFS. Ahora, usaremos un carácter para dividir una cadena usando un delimitador IFS. Abra su terminal de comandos y cree un nuevo archivo bash "file2.sh ”en su directorio personal del sistema Linux usando el comando“ touch ”de la siguiente manera:

$ touch file2.sh

Abra el directorio de inicio de su sistema Linux. Encontrarás tu archivo recién creado en él. Abra su archivo recién creado y escriba el código bash que se presenta a continuación. En la línea 3, hemos iniciado una declaración de "eco" para imprimir una línea. La siguiente línea lee la entrada dada por un usuario en un terminal usando la palabra clave "leer". A continuación, definimos el delimitador "IFS" y establecemos la coma "," como su valor de carácter. Se ha especificado otra declaración de "lectura" para leer y guardar los valores divididos por comas de una cadena que un usuario ingresa en una matriz "strarr". Por fin, hemos iniciado tres declaraciones de eco para imprimir los valores divididos separados por comas como variables como se muestra en la imagen. Guarde y cierre este archivo.

Ahora, tenemos que ejecutar este archivo guardado. Ejecute el comando bash que se muestra a continuación seguido del nombre de un archivo en una terminal para hacerlo. Debe agregar un valor de cadena que debe contener una coma "," dentro de los valores, y presionar el botón Enter. Ahora sus datos se han guardado en una matriz "strarr". Las últimas tres líneas muestran el resultado de las declaraciones "echo". Puede ver que cada texto antes y después de la coma se ha utilizado como un valor separado.

$ bash file2.sh

Ejemplo 03: Cadena dividida IFS

Hemos hecho los dos ejemplos anteriores en un archivo bash. Ahora tendremos una ilustración del uso de "IFS" sin crear un archivo bash. Abra su shell de comandos para hacerlo. Primero, necesitamos crear una cadena "var" con un valor de cadena en ella. Esta cadena contiene comas después de cada palabra.

$ var = ”Hola, tengo 25 años."

A continuación, inicialice la variable 'IFS' con el carácter coma como valor delimitador.

$ IFS =,

Después de eso, usamos el ciclo "for" para buscar cada palabra de la variable "var" separada por una coma delimitador IFS e imprimirla usando la declaración "echo".

$ por i en $ var
> hacer
> echo [$ i]
> Hecho

Tendrás la salida a continuación. Mostrará cada palabra de una variable de cadena "var" en una nueva línea debido a la coma delimitadora "," utilizada como un carácter dividido.

Conclusión:

En esta guía, ha aprendido una variedad de métodos para dividir los valores de entrada en un bash, e.gramo., con espacio o con un personaje. Esperamos que las ilustraciones mencionadas en esta guía de tutoriales lo ayuden a romper cada cadena usando el delimitador IFS.

Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...
Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...
Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...