我正在编写一个小脚本来重命名一些文件。其实有很多文件。
问题和最酷的事情是,我实际上只需要更改文件名长度为 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 个字符组成的(非隐藏)文件。请注意,对于某些 shell(例如 )dash
和 的某些实现ksh
,它是 5 个字节而不是 5 个字符,这在多字节语言环境中可能很重要。
对于那些相同的 shell,${#var}
将扩展到变量中的字节数而不是字符数。
答案3
使用 bash,您可以强制算术上下文
if (( ${#filename} == 5 )); then
:
fi
答案4
if len(file) >= 5 chars
then ren(file) $_;
end if