我想重命名不同文件的开头
输入:
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
感谢您的帮助
答案 0 :(得分:0)
例如,如果mynamefile
的长度为10,则可以写
len = ${#OLD_NAME}
for filename in $(ls | grep .abc)
do
suffix = $(filename:$len)
mv filename $newname$suffix
done
答案 1 :(得分:0)
我没有找到适合我的问题的地方 如果是我的卷轴问题。这没关系!
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是您的新文件名