在shell中,用点分隔符分割字符串的一部分

骑手:

我是Shell脚本的新手,请您满足以下要求,谢谢。

$AU_NAME=AU_MSM3-3.7-00.01.02.03
#separate the string after last "-", with "." as delimiter
#that is, separate "00.01.02.03" and print/save as below.
major=00
minor=01
micro=02
build=03
马克·里德(Mark Reed):

首先,请注意,$在外壳程序中分配参数时不使用您的第一行应该是这样的:

AU_NAME=AU_MSM3-3.7-00.01.02.03

一旦有了,就可以执行以下操作:

IFS=. read major minor micro build <<EOF
${AU_NAME##*-}
EOF

其中##*-从字符串开头到最后一个'-'剥离所有内容,仅保留“ 00.01.02.03”,而IFS(内部字段分隔符)变量告诉Shell将字符串分成多个字段的位置。

在bash,zsh和ksh93 +中,可以通过将here-document缩短为here-string来将其放在一行上:

IFS=. read major minor micro build <<<"${AU_NAME##*-}"

更一般而言,在那些相同的外壳程序(或任何其他具有数组的外壳程序)中,您可以拆分为任意大小的数组,而不是单独的变量。这适用于给定的shell:

IFS=. components=(${AU_NAME##*-})

在旧版本的ksh中,您可以执行以下操作:

IFS=. set -A components ${AU_NAME##*-}

这使您具有等效性(zsh除外,默认情况下,zsh编号元素1-4而不是0-3):

major=${components[0]}
minor=${components[1]}
micro=${components[2]}
build=${components[3]}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Python中删除用点号分隔的字符串的最后一部分

拆分字符串并将分隔符保留为拆分字符串块的一部分,而不是作为单独的列表元素

如何在基于分隔符的python中拆分字符串,其中分隔符是其中一个块的一部分?

在最后一次出现分隔符时,如何在bash中获取字符串的第一部分和第二部分

如何在shell脚本中获取'/'分隔字符串的最后一部分

如何在r中提取字符串匹配模式的一部分并带有分隔符

如何在分隔符和輸入到新列之間多次提取字符串的一部分 T-SQL

使用 BigQuery SQL 查找字符串的一部分並在分隔符之間提取數據

替换字符串中以逗号分隔列表一部分的值。的PHP

在 Scala 中访问分割字符串的一部分

Python 3用dict中的数据替换字符串的一部分

用mutate替换字符串的一部分(在管道中)

用PHP中的Regex替换字符串的一部分

用同一字符串中的单个单词替换字符串的一部分

c# 使用另一个字符串作为分隔符拆分字符串并将分隔符作为拆分字符串的一部分包含在内

Python re.split()将分隔符的部分保留为第一个字符串的一部分,而其他保留为第二个字符串的一部分,依此类推

在Perl中用逗号分隔的列表中的字符串的一部分中的字母替换数字

提取空格分隔的字符串的一部分

如何获取由列分隔的字符串的一部分

r-使用制表符作为分隔符的一部分

从数据文件的一列中删除点后的字符串的最后一部分

C在字符串中获取一部分字符串

在字符串数组中查找字符串的一部分

如何分割字符串并获得最后一部分?

R:如何分割字符串并保留其中的一部分?

分割字符串并使用IF获取第一部分

分割字符串并使用C获取最后一部分

如何替换引号中存在的分隔符值作为文件中数据的一部分

用python中的分隔符分割字符串