Shell Script para dividir una string

Shell Scripting o Shell Programming es como cualquier otro lenguaje de programación. Un shell es un programa especial que proporciona una interfaz entre el usuario y el sistema operativo.

En Linux/Unix, el shell predeterminado que se usa es bash y en Windows, es cmd (símbolo del sistema). Usamos la terminal para ejecutar un comando de shell. Los scripts de shell se guardan con . sh , y podemos ejecutar el script con la ayuda del siguiente comando.

bash path/to/the/filename.sh

Ejemplo:

Un simple programa shell para imprimir Hello Geeks!!.

#! /bin/bash

# echo is used to print
echo "Hello Geeks!!"

Aquí, #! /bin/bash se usa para informar a Linux/Unix que es un Bash Script y usar el intérprete de bash que reside en /bin para ejecutarlo.

Producción:

Shell Script to Split a String

Programa Primera Concha

 

Shell Script para dividir una string:

Analicemos cómo podemos dividir una string, tome la siguiente string como ejemplo:

string  = «Lelouch, Akame, Kakashi, Ira»

Y nos gustaría dividir la string por el delimitador «,» para que tengamos:

  • nombre = «Lelouch»
  • nombre = «Akame»
  • nombre = «Kakashi»
  • nombre = «Ira»

Enfoque 1: uso de IFS (separador de campo de entrada).

IFS significa Separador de campo interno o la variable de separador de campo de entrada se usa para separar una string en tokens.

Cuerda original: 

string = «Lelouch, Akame, Kakashi, Ira»

Después de dividir:

nombre = Lelouch

nombre = akame

nombre = Kakashi

nombre = Ira

 String contiene el valor de la string de entrada y la variable IFS el delimitador en el que vamos a separar la string. read -ra arr <<< “$string” convierte las strings separadas en una array, después de eso estamos usando for loop para recorrer la array e imprimir el valor. “@” en el subíndice arr muestra que estamos revisando todo el arreglo.

Guion :

#! /bin/bash

# Given string 
string="Lelouch,Akame,Kakashi,Wrath"

# Setting IFS (input field separator) value as ","
IFS=','

# Reading the split string into array
read -ra arr <<< "$string"

# Print each value of the array by using the loop
for val in "${arr[@]}";
do
  printf "name = $val\n"
done

Para ejecutar el script, use el siguiente comando:

bash path/to/the/filename.sh

Producción:

Shell Script to Split a String

Salida de secuencia de comandos

Enfoque 2: Sin usar el IFS

 Supongamos que la string de entrada contiene una palabra en particular «anime» y queremos dividir la string al ver «anime»

string = «anime Bleach anime Naruto anime Pokemon anime Monstruo anime Dororo»

Producción :

El nombre del anime es = Bleach

El nombre del anime es = Naruto

El nombre del anime es = Pokémon

El nombre del anime es = Monstruo

El nombre del anime es = Dororo

Podemos hacer esto usando la Expansión de Parámetros .

Guion :

#! /bin/bash

# Given string 
string="anime Bleach anime Naruto anime Pokemon anime Monster anime Dororo"

# Syntax to replace all occurrences of "anime" with " "
arr=(${string//"anime"/ })

# Print each value of the array by using the loop
for val in "${arr[@]}";
do

  printf "Anime name is = $val\n"
done

Producción:

Shell Script to Split a String

Salida de secuencia de comandos

Publicación traducida automáticamente

Artículo escrito por amnindersingh1414 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *