我到处搜索,但是这些术语显然太笼统了。我正在编写一个脚本来搜索一组文件夹中的.mp3文件。有些文件夹没有mp3,因此必须将其排除。
我创建了一个数组来保存唯一的文件夹名称。此find命令将获取我需要的文件夹。
Folders=$(sudo find /my/music/ -type f -name "*.mp3" | cut -d'/' -f7 | sort -u)
当我尝试计算数组中的文件夹数量时,我总是得到 1
echo ${#Folders[@]}
echo ${Folders[@]}将它们打印在单独的行上,所以我认为它们是单独的数组元素。谁能解释发生了什么?您可能需要在cut命令中微调字段号才能在本地复制。
Folders 不是数组而是变量。
你需要:
Folders=( $(sudo find /my/music/ -type f -name "*.mp3" | cut -d'/' -f7 | sort -u) )
Run Code Online (Sandbox Code Playgroud)
即用括住命令替换()。现在${#Folders[@]}将为您提供array的元素数量Folders。