フォルダ内の各フォルダ名を取得する方法

フォルダ内の各フォルダ名を取得する方法

私は特定のフォルダ内のすべてのフォルダ名を一覧表示し、各フォルダ内のファイルの説明を印刷する必要があるbashスクリプトを作成しています。以下はファイルシステムの例です。

main
||
\/
folder1
folder2
folder3
folder4
template

フォルダを除くすべてのフォルダには(フォルダを含む)mainというファイルがあります。以下はサンプル記述ファイルです。descriptiontemplate

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

おすすめ記事