Bash提取子字符串

广告位

在小节中,我们将学习如何计算给定字符串的子字符串。子字符串是字符串中的字符序列。Bash提供了一个从字符串提取…

在小节中,我们将学习如何计算给定字符串的子字符串。
子字符串是字符串中的字符序列。Bash提供了一个从字符串提取信息的选项,Bash中可以使用多种方法提取数字或给定的字符串。

例如,"welcome you visits yiibai.""Welcome you visits yiibai.com"的子字符串。

语法

提取子字符串的命令是内置的bash命令,因此从性能角度来看非常有用。子字符串提取的语法可以定义为:

${variable:offset:length} 

其中,

  • variable是包含字符串的变量名称。
  • offset用于指定从何处开始提取字符串的位置。
  • length用于指定从偏移量开始执行的字符范围。

注意:分配长度是可选的。如果未提供length,则子字符串的结尾将是字符串的结尾。

下面通过一些示例从字符串中提取子字符串的概念。

示例1:从开始提取直到特定字符

#!/bin/bash   #Script to extract first 10 characters of a string    echo "String: We welcome you on Yiibai."   str="We welcome you on Yiibai."    echo "Total characters in a String: ${#str} "    substr="${str:0:10}"    echo "Substring: $substr"   echo "Total characters in Substring: ${#substr} " 

执行上面示例代码,得到以下结果:
Bash提取子字符串

示例2:从特定字符开始提取

#!/bin/bash   #Script to print from 11th character onwards    str="We welcome you on Yiibai."   substr="${str:11}"   echo "$substr" 

在这里,子字符串的结尾与字符串的结尾相同。

执行上面示例代码,得到以下结果:

maxsu@yiibai:~/bashcode$ vi substring.sh  maxsu@yiibai:~/bashcode$ ./substring.sh  you on Yiibai. 

示例3:提取单个字符

#!/bin/bash   #Script to print 11th character of a String    str="We welcome you on Yiibai."   substr="${str:11:1}"   echo "$substr" 

执行上面示例代码,得到以下结果:

maxsu@yiibai:~/bashcode$ cat /dev/null > substring.sh maxsu@yiibai:~/bashcode$ vi substring.sh  maxsu@yiibai:~/bashcode$ ./substring.sh  y 

示例4:从末尾提取特定字符

#!/bin/bash   #Script to extract 11 characters from last    str="We welcome you on Yiibai."   substr="${str:(-11)}"   echo "$substr" 

执行上面示例代码,得到以下结果:

maxsu@yiibai:~/bashcode$ cat /dev/null > substring.sh  maxsu@yiibai:~/bashcode$ vi substring.sh  maxsu@yiibai:~/bashcode$ ./substring.sh   on Yiibai. 

  

女人的秘密

关于作者: 女人的秘密

为您推荐