본문 바로가기
  • _^**_
무근본 IT 지식 공유/무근본 운영체제(OS)

리눅스쉘 / ls명령 시 조회되는 폴더별 ls 결과의 라인 수를 각각 출력하는 방법(예시)

by 크리드로얄워터 2023. 11. 23.
반응형
Work1, work2, work3 ... 폴더별 ls 결과의 라인 수를 각각 출력하는 방법 ?


특정 폴더(`Work1`, `Work2`, `Work3`, 등) 내부의 `ls` 명령어 결과의 라인 수를 출력하고 싶다면, Bash 쉘 스크립트에서 반복문과 파이프라인을 사용할 수 있습니다.


아래의 스크립트는 각 `Work` 폴더에 대해 `ls` 명령어의 출력 라인 수를 계산하고 출력합니다.


#!/bin/bash

for folder in Work1 Work2 Work3; do
    if [ -d "$folder" ]; then  # 폴더가 존재하는지 확인
        count=$(ls -1 "$folder" | wc -l)  # 폴더 내 항목 수 계산
        echo "$folder has $count items"
    else
        echo "$folder does not exist"
    fi
done




이 스크립트는 다음과 같이 작동합니다:

1. `for folder in Work1 Work2 Work3`: `Work1`, `Work2`, `Work3` 등의 폴더를 순회합니다.
2. `if [ -d "$folder" ]`: 해당 폴더가 존재하는지 확인합니다.
3. `ls -1 "$folder"`: 폴더 내의 항목을 한 줄에 하나씩 나열합니다.
4. `| wc -l`: 파이프라인을 통해 `ls`의 결과를 `wc -l` 명령어로 넘겨, 라인 수를 세어줍니다.
5. `echo "$folder has $count items"`: 계산된 항목 수를 출력합니다.

폴더 이름 목록(`Work1 Work2 Work3`)은 실제 상황에 맞게 조정할 수 있습니다.

폴더 이름 뒤에 붙는 숫자를 변수로 다루기 위해 스크립트를 수정할 수 있습니다. 이를 위해 시작 숫자와 종료 숫자를 정의한 후, 이 범위 내에서 반복문을 사용하여 폴더 이름을 생성하고 `ls` 명령어의 결과 라인 수를 계산합니다. 다음은 수정된 스크립트의 예입니다:


폴더 이름 뒤에 붙는 숫자를 변수로 다루기 위해 스크립트를 수정할 수 있습니다. 이를 위해 시작 숫자와 종료 숫자를 정의한 후, 이 범위 내에서 반복문을 사용하여 폴더 이름을 생성하고 ls 명령어의 결과 라인 수를 계산합니다. 다음은 수정된 스크립트의 예입니다:


#!/bin/bash

start=1   # 시작 숫자
end=5     # 종료 숫자

for ((i=start; i<=end; i++)); do
    folder="Work$i"  # 폴더 이름 생성 (예: Work1, Work2 등)
    if [ -d "$folder" ]; then  # 폴더가 존재하는지 확인
        count=$(ls -1 "$folder" | wc -l)  # 폴더 내 항목 수 계산
        echo "$folder has $count items"
    else
        echo "$folder does not exist"
    fi
done



이 스크립트는 다음과 같이 작동합니다:

1. start와 end 변수로 시작과 종료 숫자를 설정합니다.
2. for ((i=start; i<=end; i++)): 시작부터 종료 숫자까지 반복합니다.
3. folder="Work$i": 각 숫자에 대해 폴더 이름을 생성합니다.
4. 나머지 부분은 이전 스크립트와 동일하게 폴더의 존재 여부를 확인하고, ls 명령어의 결과 라인 수를 계산하여 출력합니다.

이 스크립트를 사용하면 Work1, Work2, …, Work5와 같이 숫자가 붙은 폴더들에 대한 ls 결과의 라인 수를 자동으로 계산할 수 있습니다.





반응형

댓글