我需要一个sh脚本来删除文件名的前3个字符,例如:
"AB file 1.pdf"
"BC file 2.pdf"
"DB file 3.pdf"
"AD file 4.pdf"
...
为:
"file 1.pdf"
"file 2.pdf"
"file 3.pdf"
"file 4.pdf"
...
我认为脚本会像:
#!/bin/sh
for i in *.pdf; do
newName= ????
mv $i $newName
done
答案 0 :(得分:4)
使用cut
命令:
newName=$(echo "$i" | cut -c4-)
在bash
中,您可以使用Parameter Expansion扩展程序:
newName=${i:3}
另外,不要忘记引用您的变量:
mv "$i" "$newName"
否则,它会认为您正在尝试移动名为“AB ,
file , and
1.pdf to a directory named
1.pdf`的文件。
如果您还没有rename
命令,也可以安装它:
rename 's/^...//' *.pdf