일부 파일의 이름을 바꾸는 작은 스크립트를 작성 중입니다. 실제로 파일이 너무 많습니다.
문제이자 가장 멋진 점은 실제로 파일 이름이 5자 길이인 파일만 변경하면 된다는 것입니다.
남은 부분이 있는지 확인하기 위해 하나 만들었지 $(filename:0:5)
만 꽤 더러운 것 같아서 실제적이거나 학술적인 방법을 알고 싶습니다.
이 같은:
if [$(filename).length() == 5]; then
reaname_file
fi
답변1
${#VAR}
다음을 사용하여 변수의 길이를 얻을 수 있습니다 $VAR
.
if [ "${#filename}" -eq 5 ]; then
rename_file
fi
답변2
for file in ?????; do
something with "$file"
done
현재 디렉터리에서 5자 이름을 가진 (숨겨지지 않은) 파일만 처리됩니다. 일부 쉘(예를 들어) dash
및 일부 구현의 경우 ksh
5자가 아닌 5바이트이므로 멀티바이트 로케일에서 중요할 수 있습니다.
동일한 쉘의 경우 ${#var}
문자 수 대신 변수의 바이트 수로 확장됩니다.
답변3
bash를 사용하면 강제로 할 수 있습니다산술 문맥
if (( ${#filename} == 5 )); then
:
fi
답변4
if len(file) >= 5 chars
then ren(file) $_;
end if