如何获取某个文件夹内每个文件夹的名称

如何获取某个文件夹内每个文件夹的名称

我正在编写一个 bash 脚本,需要列出某个文件夹内的所有文件夹名称,并从每个文件夹内的文件打印它们的描述。这是一个示例文件系统:

main
||
\/
folder1
folder2
folder3
folder4
template

除了文件夹之外的每个文件夹内main都有一个名为description(包括template文件夹)的文件,这里是一个示例描述文件:

folder1
=======
contains:
* x
* y
* z

这些文件夹可能会更改名称、添加更多文件夹以及删除一些文件夹。所以我不想硬编码任何数字或名称

我想仅使用 bash 来打印所有文件夹及其描述,如果有任何其他程序(cat、grep 等都可以),则尽可能少地打印没有文件template夹:

**folder1**
folder1
=======
contains:
* x
* y
* z

**folder2**
folder2
=======
contains:
* x
* y
* z

**folder3**
folder3
=======
contains:
* x
* y
* z

**folder4**
folder4
=======
contains:
* x
* y
* z

^请注意,模板文件夹不在我想要的示例输出中

到目前为止我有这个代码:

function list-all() {
  folderlist=()
  for file in /home/USER/main/*; do
      echo "$(basename "$file")"
  done
}

它在垂直列表中打印所有文件夹名称,如下所示:

folder1
folder2
folder3
folder4
template

从这个输出我想得到这个:

folder1
folder1
=======
contains:
* x
* y
* z

folder2
folder2
=======
contains:
* x
* y
* z

folder3
folder3
=======
contains:
* x
* y
* z

folder4
folder4
=======
contains:
* x
* y
* z

预先非常感谢!

答案1

思考你想要的是这样的:

for dir in /home/USER/main/*/; do
    dirname=$(basename "$dir")
    if [[ "$dirname" != "template" ]]; then        
        echo "$dirname"
        cat "$dir"/description
    fi
done

相关内容