Regex 通过删除部分原始名称在bash中重命名文件
刚从bash开始,我就遇到了一个小问题 我有一个目录,其中有几个zip文件,如:Regex 通过删除部分原始名称在bash中重命名文件,regex,bash,file,Regex,Bash,File,刚从bash开始,我就遇到了一个小问题 我有一个目录,其中有几个zip文件,如: 102-123.zip 54-458.zip 1566-akka.zip 我想制作一个bash脚本来删除zip名称中的XXX-以便: 123.zip 458.zip akka.zip 我从一本书开始 for fName in /mydirectory/* do mv fname newfname done 我试着从正则表达式开始,但我要做的事情非常复杂 你知道我能做什么吗?使用重命名你可以做: ren
102-123.zip
54-458.zip
1566-akka.zip
我想制作一个bash脚本来删除zip名称中的XXX-以便:
123.zip
458.zip
akka.zip
我从一本书开始
for fName in /mydirectory/*
do
mv fname newfname
done
我试着从正则表达式开始,但我要做的事情非常复杂
你知道我能做什么吗?使用
重命名
你可以做:
rename 's/^[^-]+-//' *.zip
如果rename
实用程序不可用,请使用:
for f in *.zip; do
mv "$f" "${f#*-}"
done
使用
重命名
可以执行以下操作:
rename 's/^[^-]+-//' *.zip
如果rename
实用程序不可用,请使用:
for f in *.zip; do
mv "$f" "${f#*-}"
done
如果要在子目录中递归重命名,请使用
find
:
find . -type f -name '*.zip' -print0 | xargs -L 1 -0 bash -c 'mv "$1" "${1#*-}"' \;
如果要在子目录中递归重命名,请使用
find
:
find . -type f -name '*.zip' -print0 | xargs -L 1 -0 bash -c 'mv "$1" "${1#*-}"' \;