시스템을 사용하거나 운영하다 보면 디렉토리의 파일 확장자별 목록을 작성해야 하는 경우가 발생한다.
이런 경우에 사용할 수 있는 쉘스크립트와 command를 사용해 보자
리눅스 쉘(SHELL)에서 확장자별 파일 목록 작성
# with a bash for loop
for f in /home/data/*.wav;
do echo "file '$f'" >> mylist.txt;
done
# or with printf
printf "file '/home/data/%s'\n" *.wav > mylist.txt
위의 쉘을 실행하면 mylist.txt에는 다음과 같은 내용으로 기록된다.
file '/home/data/1.wav'
file '/home/data/2.wav'
file '/home/data/3.wav'
file '/home/data/4.wav'
file '/home/data/5.wav'
그리고 mylist.txt 파일은 명령어를 실행하는 경로에 생성된다.
file 이라는 글자와 /home/data/ 를 제외하고 순수하게 파일명만 저장하고 싶다면 다음과 같이 수정한다.
# with a bash for loop
cd /home/data/
for f in *.wav;
do echo "'$f'" >> mylist.txt;
done
# or with printf
cd /home/data/
printf "'%s'\n" *.wav > mylist.txt
위와 같이 수정했을 경우에 mylist.txt 파일은 /home/data에 생성되고, mylist.txt 내부에는 파일명만 기록된다.
윈도우(즈)에서 확장자별 파일 목록 작성
(for %i in (*.wav) do @echo file '%i') > mylist.txt
윈도우즈에서도 경로 이동이나 실행 위치, 파일 생성위치는 리눅스와 동일하게 동작한다.
단, 파일을 찾아서 리스트로 만드는 명령 구문만 다르다.
'Linux and Unix > SHELL' 카테고리의 다른 글
쉘 스크립트 df -h 명령어 특정 용량 이상 디렉토리 가져오기 (0) | 2023.02.13 |
---|---|
파일개수 및 디렉토리 개수 구하기 (wc 명령 이용) (0) | 2023.02.11 |
확장자에 따른 파일 목록 작성 (0) | 2023.02.11 |
리눅스, 유닉스에서 한글 설정 (0) | 2017.10.22 |
Korn Shell 100% 활용 (0) | 2017.10.22 |