在Bash中如何提取子字符串
时间:2019-11-20 08:53:52 来源:igfitidea点击:
在bash shell中,如何提取字符串中的子字符串保存到shell变量中?
shell脚本中如何获取子字符串?
在Bash中提取子字符串
语法为:
${parameter:offset:length}
子字符串扩展是一项bash功能。
用于截取从offset开始,长度为length的子字符串。
例如,假设$u定义如下:
u="welcome theitroad"
使用子字符串参数扩展提取子字符串:
var="${u:8:8}" echo "${var}"
输出示例:
theitroad
第1个8表示偏移位置,第2个8表示长度。
使用IFS截取子字符串
IFS(Internal Field Separator的缩写)内部字段分隔符,用于将字符串根据符号拆分。
默认值是 空格,tab符和换行符。
示例如下:
u="this is a test" set -- $u echo "" echo "" echo "" echo ""
输出示例:
this is a test
示例2
u="this / is/a/test" IFS='/' set -- $u echo "" echo "" echo "" echo ""
输出示例:
this is a test
bash shell使用cut命令截取子字符串
语法为:
u="this is a test" echo "$u" | cut -d' ' -f 4 echo "$u" | cut --delimiter=' ' --fields=4 var="$(cut -d' ' -f 4 <<< $u)" echo "${var}"
-d' '
: 表示使用空格作为分隔符-f 4
: 选择第4个字段作为结果var="$(cut -d' ' -f 4 <<< $u)"
将结果保存到变量var中