📜  用于拆分字符串的 Shell 脚本

📅  最后修改于: 2022-05-13 01:57:34.226000             🧑  作者: Mango

用于拆分字符串的 Shell 脚本

Shell Scripting 或 Shell Programming 就像任何其他编程语言一样。 shell 是一种特殊的程序,它提供了用户和操作系统之间的接口。

在 Linux/Unix 中,使用的默认 shell 是bash,而在 Windows 中,它是cmd (命令提示符)。我们使用终端来运行 shell 命令。 Shell 脚本以 . sh文件扩展名,我们可以在以下命令的帮助下运行脚本。

bash path/to/the/filename.sh

例子:

一个简单的 shell 程序来打印 Hello Geeks!!。

#! /bin/bash

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

在这里, #! /bin/bash用于让 Linux/Unix 知道它是一个 Bash 脚本,并使用驻留在 /bin 中的 bash 解释器来执行它。



输出:

用于拆分字符串的 Shell 脚本

第一个壳程序

用于拆分字符串的 Shell 脚本:

让我们以以下字符串为例讨论如何拆分字符串:

方法 1:使用 IFS(输入字段分隔符)。

IFS 代表内部字段分隔符或输入字段分隔符变量用于将字符串分隔为标记。

String保存输入字符串值和IFS变量作为我们将要分隔字符串的分隔符。 read -ra arr <<< "$ 字符串"将分隔的字符串转换成数组,然后我们使用for循环遍历数组并打印值。 arr 下标中的“@”表示我们正在遍历整个数组。

脚本 :

#! /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

要运行脚本,请使用以下命令:

bash path/to/the/filename.sh

输出:

用于拆分字符串的 Shell 脚本

脚本输出

方法 2:不使用 IFS



假设输入字符串包含一个特定的单词“anime” ,我们想在看到“anime”时拆分字符串

我们可以使用Parameter Expansion来做到这一点

脚本 :

#! /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

输出:

用于拆分字符串的 Shell 脚本

脚本输出