6

ls假设我在 bash 脚本中有以下文件名:

things-hd-91-Statistics.db
things.things_domain_idx-hd-38-Data.db

在 bash 中,在这两种情况下如何获取字符串的第一部分'things'?基本上删除字符串的其余部分超过第一个-.

4

1 回答 1

16

您将使用参数扩展

string="things-hd-91-Statistics.db"
echo "${string%%-*}"
things

${parameter%%pattern}“模式”中,( -*) 与“参数”的结尾匹配。结果是“参数”的扩展值,最长匹配被删除。

同样,对于您的其他示例,模式将是%%.*

于 2012-10-07T06:11:15.337 回答