폴더 내의 각 폴더 이름을 얻는 방법

폴더 내의 각 폴더 이름을 얻는 방법

저는 특정 폴더 내의 모든 폴더 이름을 나열하고 각 폴더 내의 파일에 대한 설명을 인쇄해야 하는 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

관련 정보