我有一个变量A
,它有一个值,其第一部分总是DEV-UI
。A的各种可能值可以是:DEV-UI
、DEV-UI2
、DEV-UI*
我想从中提取DEV
并将其存储在另一个变量中。这样,另一个变量B
始终具有值DEV
。
如何从A
中提取并存储在 B 中DEV
?
我正在寻找任何切割分隔符或任何可用于在我的 shell 脚本中实现此目的的表达式。
B=$(echo "$A" | cut -d'-' -f1)
按-
拆分字符串并返回第一部分。
明显的步骤显然只是设置B="DEV"
,因为您声明它始终DEV
。但是,下面我展示了如何将其提取为第一个字段。
这有点取决于您拥有的外壳类型,但如果它是任何形式的sh
兼容外壳,您可以执行以下操作:
$ B=${A%%-*}
这在 POSIX shell 命令语言中进行了解释:
${parameter%%[word]}
删除最大的后缀模式。该词应扩展以产生模式。然后,参数扩展应生成参数,删除与模式匹配的后缀的最大部分。
$ A="hello-big-world"
$ echo ${A%-*}
hello-big
$ echo ${A%%-*}
hello
使用 C Shell 时,您就没有那么幸运了:
% set a = "hello-big-world"
% set b = `echo $a | cut -d- -f1`
% echo $b
hello