删除Bash中字符串末尾的破折号分隔的数字
删除Bash中字符串末尾的破折号分隔的数字,bash,Bash,XX-XX-XXXXX-ddd-dd-ddddd由两部分组成: XX-XX-XXXXX由字母组成,它可以包含一个或多个破折号,例如abc de fghij,和abcde-fghi-j 而ddd-dd-ddddd由数字组成,同样,它可能包含一个或多个破折号,例如123-456-7890,12-3-456-7890 在Bash中获取XX-XX-XXXXX的简单方法是什么?例如,假设我有abc-de-fghij-123-456-7890,如何获得abc-de-fghij?使用%%变量的参数展开,可
XX-XX-XXXXX-ddd-dd-ddddd
由两部分组成:
由字母组成,它可以包含一个或多个破折号,例如XX-XX-XXXXX
,和abc de fghij
abcde-fghi-j
- 而
由数字组成,同样,它可能包含一个或多个破折号,例如ddd-dd-ddddd
,123-456-7890
12-3-456-7890
在Bash中获取
XX-XX-XXXXX
的简单方法是什么?例如,假设我有abc-de-fghij-123-456-7890
,如何获得abc-de-fghij
?使用%%
变量的参数展开,可以删除所有内容,包括紧跟在数字后面的第一个破折号
$ str=abc-de-fghij-123-456-7890
$ echo "${str%%-[0-9]*}"
abc-de-fghij
@奥古斯梅尔:它有效。非常感谢你!