删除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

@奥古斯梅尔:它有效。非常感谢你!