Shell脚本中如何从含DEV-UI前缀的变量A提取DEV到变量B?
提取变量前缀的Shell实现方法
针对你这个需求,不管变量A是DEV-UI、DEV-UI2还是DEV-UI*,要提取开头的DEV到变量B,用cut或者Shell内置的参数展开都能轻松实现,我给你两种常用方案:
方案1:使用cut命令
利用-作为分隔符,提取第一个字段即可:
# 示例变量赋值 A="DEV-UI2" # 提取DEV到B B=$(echo "$A" | cut -d'-' -f1) # 验证结果 echo "$B" # 输出 DEV
原理:-d'-'指定分隔符为-,-f1表示取分割后的第一个字段,不管-后面跟着什么内容,都能精准拿到开头的DEV。
方案2:使用Shell参数展开(更高效)
如果不想启动子进程(cut会额外开子进程),可以用Shell内置的参数展开功能,性能更优:
# 示例变量赋值 A="DEV-UI*" # 从末尾删除最长匹配的"-*"(即删除"-"及之后的所有内容) B="${A%%-*}" # 验证结果 echo "$B" # 输出 DEV
原理:${var%%pattern}是Shell的参数展开语法,会从变量var的末尾开始,删除最长匹配pattern的部分。这里-*匹配-后面的任意内容,删掉后就只剩下开头的DEV了。
这两种方法都能覆盖你列出的所有A的取值情况,完全满足需求~
内容的提问来源于stack exchange,提问作者Ashley
相关产品推荐
相关产品推荐

