我正在做一个小脚本来重命名一些文件。其实很多文件。
问题和酷的是,我实际上只需要更改文件名长度为 5 个字符的文件。
我做了一个$(filename:0:5),看看是否有剩余的,但我想这很脏,我很高兴知道这样做的真实或学术方式。
类似的东西:
if [$(filename).length() == 5]; then
reaname_file
fi
Run Code Online (Sandbox Code Playgroud)
jof*_*fel 11
您可以使用${#VAR}来获取变量的长度$VAR:
if [ "${#filename}" -eq 5 ]; then
rename_file
fi
Run Code Online (Sandbox Code Playgroud)
for file in ?????; do
something with "$file"
done
Run Code Online (Sandbox Code Playgroud)
将仅处理当前目录中名称由 5 个字符组成的(非隐藏)文件。请注意,对于某些 shelldash和 的某些实现ksh,它是 5 个字节而不是 5 个字符,这在多字节语言环境中很重要。
对于那些相同的 shell,${#var}将扩展到变量中的字节数而不是字符数。