我想重命名不同文件的开头
输入:
myfilename abc yeswithspaces.abc
myfilename def yeswithspaces.abc
myfilename_abc_nospaces.abc
myfilename def blabla.def
myfilename_abc_mainfile.ok
输出通缉
newfilename abc yeswithspaces.abc
newfilename def yeswithspaces.abc
newfilename_abc_nospaces.abc
myfilename def blabla.def
myfilename_abc_mainfile.ok
我有这个代码,如果我只有一个文件.abc,但是如果还有更多,那么这个代码可以正常工作:
if [ -e "${DOSSIER}/${OLD_NAME}"*.abc ];
then
for i in "${DOSSIER}/$OLD_NAME"*.abc; do
[ -f "$i" ] || continue
mv "$i" "${i/$OLD_NAME/$NEW_NAME}"
done
fi
谢谢你的帮助
例如,如果mynamefile
的长度为10,则可以编写
len = ${#OLD_NAME}
for filename in $(ls | grep .abc)
do
suffix = $(filename:$len)
mv filename $newname$suffix
done
我没有找到适合我的问题的地方,如果是我的卷轴问题。还行吧!
ABC_Files=$(ls "$DOSSIER/$OLD_NAME"*.abc 2> /dev/null | wc -l)
if [ **"$ABC_Files" != "0"** ];
then
for i in "${DOSSIER}/$OLD_NAME"*.abc; do
[ -f "$i" ] || continue
mv "$i" "${i/$OLD_NAME/$NEW_NAME}"
done
fi
当然假设你知道这一点
$ DOSSIER是路径
$ OLD_NAME是您的实际文件名
$ NEW_NAME是您的新文件名