【发布时间】:2021-10-31 02:16:09
【问题描述】:
给定一个someletters_12345_moreleters.ext 形式的文件名,我想提取这 5 个数字并将它们放入一个变量中。
为了强调这一点,我有一个包含 x 个字符的文件名,然后是一个五位数字序列,两边各有一个下划线,然后是另一组 x 个字符。我想将 5 位数字放入变量中。
我对可以实现这一点的不同方法的数量非常感兴趣。
【问题讨论】:
-
大部分答案似乎都没有回答您的问题,因为问题含糊不清。 “我有一个包含 x 个字符的文件名,然后是一个五位数字序列,两边各有一个下划线,然后是另一组 x 个字符”。根据该定义,
abc_12345_def_67890_ghi_def是有效输入。你想发生什么?假设只有一个 5 位序列。根据您对输入的定义,您仍然有abc_def_12345_ghi_jkl或1234567_12345_1234567或12345d_12345_12345e作为有效输入,并且下面的大多数答案都无法处理此问题。 -
这个问题的示例输入太具体了。正因为如此,它为 这种特殊情况 得到了很多具体的答案(仅限数字,相同的
_分隔符,只包含一次目标字符串的输入等)。 best (most generic and fastest) answer 10 年后只有 7 个赞,而其他有限的答案有数百个。让我对开发者失去信心???? -
点击诱饵标题。子字符串函数的含义已经确立,意味着通过数字位置获取部分。所有其他的东西,(indexOf, regex) 都是关于搜索的。一个 3 个月前的问题精确询问 bash 中的子字符串,答案相同,但标题中没有“子字符串”。没有误导,但没有正确命名。结果:在投票最多的问题中,关于内置函数的答案被活动排序隐藏了 5 个屏幕;较旧且更精确的问题,标记为重复。 stackoverflow.com/questions/219402/…
标签: string bash shell substring