使用剪切分隔符提取字符串的初始部分

时间:2018-05-15 13:24:56

标签: shell delimiter cut

我有一个变量A,其值的第一部分始终为DEV-UI。 A的各种可能值可以是:DEV-UIDEV-UI2DEV-UI*

我想从中提取DEV并将其存储在另一个变量中。这样,其他变量B的值始终为DEV

如何从ADEV中提取并存储在B中?

我正在寻找任何剪切分隔符或任何可用于在我的shell脚本中实现此目的的表达式。

2 个答案:

答案 0 :(得分:0)

-

按{{1}}拆分字符串并返回第一部分。

答案 1 :(得分:0)

明显的步骤显然只是设置B="DEV",因为你声明它总是DEV。但是,下面我将展示如何将其作为第一个字段提取。

这取决于您拥有的shell类型,但如果它是任何形式的sh - 兼容的shell,您可以这样做:

$ B=${A%%-*}

POSIX shell command language

中对此进行了解释
  

<强> ${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