提取路径内容/文件名组件(BASH)

时间:2019-03-14 20:36:06

标签: arrays bash loops path filenames

我有一些文件名,我试图从中提取名称/单词/数字以供以后使用。

例如

/.../Penguins_45_MIA.txt
/.../Sheep_3.5_KIA.txt
/.../Dolphins_19_AWOL.txt

如您所见,文件名中用下划线分隔的组件对我很有用。我将它们放入一个数组(“ currentpath”)中,然后放入循环,一次处理每个文件(我认为这是一种非常明智的方法?)。我一直在尝试使用以下命令将路径分解为组成单词和数字:

partialpath=(${currentpath//_/})

,然后使用类似这样的名称来选择名称的一部分(现在是元素),例如动物:

${partialpath[-3]}

但是这不起作用-我一直希望上面的内容能给我DolphinsPenguins等。当我调查时,echo "${partialpath[@]}"返回了:

/.../Dolphins19AWOL.txt

所以我假设数组只有一个元素?就是说,整个文件路径都粘在一起而没有任何下划线?还是我选择的元素不正确?

此外,我刚刚注意到,最后一个元素仍将.txt文件保留在最后一个元素上,这是次优的。

我希望这很清楚,我知道这是一个简单的问题,但是我对编写脚本完全陌生,整整一天我都在挠头。

1 个答案:

答案 0 :(得分:0)

quote.chars().filter(c -> !"aeiou".contains(String.valueOf((char) c).toLowerCase())).count(); 只是删除了下划线,它不会破坏字符串。它可以在数组上使用,但只对每个元素执行相同的字符串操作。试试这个:

${currentpath//_/}