在linux中删除文件名的前3个字符

时间:2017-11-15 19:47:15

标签: linux terminal sh

我需要一个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

1 个答案:

答案 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