【发布时间】:2019-03-14 20:36:06
【问题描述】:
我有文件名,我正试图从中提取名称/单词/数字以供以后使用。
例如
/.../Penguins_45_MIA.txt
/.../Sheep_3.5_KIA.txt
/.../Dolphins_19_AWOL.txt
如您所见,文件名中有下划线分隔的组件,这对我很有用。我将它们放入一个数组(“currentpath”)中,然后放入一个循环中,一次处理每个文件(我认为这是一种非常明智的方法?)。我一直在尝试使用以下命令将路径分解为其组成单词和数字:
partialpath=(${currentpath//_/})
然后选择名称的一部分(现在是一个元素),例如使用这样的动物:
${partialpath[-3]}
但这不起作用 - 我一直希望上面的回声会给我一个 Dolphins 或 Penguins 等。当我调查时,echo "${partialpath[@]}" 返回:
/.../Dolphins19AWOL.txt
所以我假设数组只有一个元素?也就是说,整个文件路径都粘在一起,没有任何下划线?还是我选错了元素?
另外,我刚刚注意到最后一个元素仍会使 .txt 文件以最后一个元素结尾,这是次优的。
我希望这很清楚,我知道这是一个简单的问题,但我对编写脚本完全陌生,一整天都在摸不着头脑。
【问题讨论】:
标签: arrays bash loops path filenames