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