假设我们有一个由多个单词组成的字符串,用逗号或下划线分隔,我们需要拆分字符串以提取每个单词。可以在bash中使用带有read命令或tr命令的内部字段分隔符(IFS)来拆分字符串。今天我们就这个问题举几个例子。方法一:使用read命令拆分字符串使用read命令拆分字符串的例子如下脚本所示:#!/bin/bash##脚本根据delimitermy_string="Ubuntu;LinuxMint;Debian;Arch;Fedora"IFS=';'read-ramy_array<<<"$my_string"#Printthesplitstringforiin"${my_array[@]}"doecho$idone拆分字符串如下:IFS=';'read-ramy_array<<<"$my_string"在上面的代码中,IFS指定了分割字符串的分隔符,在本例中是分号;.分隔符可以是任意字符,例如空格、制表符、逗号或某个字母。读取命令中的IFS在分隔符处拆分输入,读取命令读取原始输入(选项-r),选项-a将单词存储到数组中。简单来说,就是将一个长字符串拆分成若干个单词,用分隔符隔开,这些单词存储在一个数组中。现在,您可以访问数组中的元素,或者使用for循环将所有单词一一打印出来,结果如下:UbuntuLinuxMintDebianArchFedora方法二:使用bash中的tr命令拆分字符串#!/bin/bash##脚本根据delimitermy_string="Ubuntu;LinuxMint;Debian;Arch;Fedora"my_array分割字符串=($(echo$my_string|tr";""\n"))#打印"${my_array[@]}"中i的拆分字符串doecho$idone这个例子和上一个几乎一样,除了read命令被tr命令取代。这种方法的一个问题是数组元素由空格分隔符分隔,例如“LinuxMint”将被视为两个词。因此,上述脚本的输出为:UbuntuLinuxMintDebianArchFedora所以,我们推荐使用第一种方法来拆分字符串。以上就是本次分享的全部内容,欢迎讨论。
