현재 디렉터리에 있는 모든 파일의 너비와 높이를 가져오는 다음 bash 스크립트가 있습니다.
ls | cat -n | while read n f; do
width=$(identify -format "%w" "$f")
height=$(identify -format "%h" "$f")
echo "$width , $height"
done
파일 이름이 로 끝나는 파일의 높이/너비를 얻는 방법은 무엇입니까 -example99.jpg
?
답변1
for filename in *-example99.jpg
do
width=$(identify -format "%w" "$filename")
height=$(identify -format "%h" "$filename")
done
답변2
여기에는 루프가 필요하지 않습니다.
identify -format "%w , %h\n" ./*-example99.jpg
( %f
파일 이름도 필요한 경우 형식에 추가하세요.)
파일당 2개의 명령을 실행 하지 않으려면 identify
다음을 수행할 수도 있습니다( 여기서 ksh93
또는 구문 사용).bash
unset -v file width height
file=(./*-example99.jpg)
eval "$(identify -format 'width+=(%w) height+=(%h)\n' "${file[@]}")"
for ((i = 0; i < ${#file[@]}; i++)); do
printf 'File: %s (%s x %s)\n' "${file[i]}" "${width[i]}" "${height[i]}"
done
(또는 배열의 키를 for i in "${!file[@]}"; do...
반복합니다 ).$file
이는 모든 파일 너비와 높이가 인식된다고 가정하며 여러 이미지(예: 애니메이션)를 포함할 수 있는 파일 형식에는 이 방법을 사용 identify
하지 않습니다 .gif
답변3
단순한find
+identify
방법:
find . -maxdepth 1 -type f -name "*-example99.jpg" -exec identify -format "%w, %h\n" {} \;
출력 예:
640, 480