如何用bash脚本批量替换文件名前缀?
到目前为止,我所做的是附加它如何用bash脚本批量替换文件名前缀?,bash,Bash,到目前为止,我所做的是附加它 #!/bin/bash for f in * do mv "$f" "File${f##/}" done 文件名由3个随机字母和3个数字组成。我需要用“文件”替换这3个字母 然后你需要去掉这三个字母 "File${f#???}" 然后你需要去掉这三个字母 "File${f#???}" 您可以使用: newName=`echo $f | sed 's/^[a-z]\{3\}/File/'` mv $f $newName 您可以使用: newName=`ech
#!/bin/bash
for f in *
do
mv "$f" "File${f##/}"
done
文件名由3个随机字母和3个数字组成。我需要用“文件”替换这3个字母 然后你需要去掉这三个字母
"File${f#???}"
然后你需要去掉这三个字母
"File${f#???}"
您可以使用:
newName=`echo $f | sed 's/^[a-z]\{3\}/File/'`
mv $f $newName
您可以使用:
newName=`echo $f | sed 's/^[a-z]\{3\}/File/'`
mv $f $newName
明白了
显然,我不应该评论说谢谢,所以我只在这里加上它。谢谢,我将使用Ignacio的方法。明白了
#!/bin/bash
for f in *
do
newName=File"$(echo "$f" | cut -c4-)"
mv "$f" "$newName"
done
显然,我不应该评论说谢谢,所以我只在这里加上它。谢谢,我将使用Ignacio的方法。“$(echo“$f”| cut-c4-”
对于Bash来说太复杂了。看看Ignacio的答案。“$(echo“$f”| cut-c4-”
对于Bash来说太复杂了。请看Ignacio的回答。我的标准意见是:对于任何像这样的批量移动/重命名,请始终使用mv-n
或mv-i
,以防止文件在名称冲突、bug、,等。我的标准意见:请始终使用mv-n
或mv-i
进行任何此类批量移动/重命名,以防止文件在名称冲突、错误等情况下被静默和不可逆转地覆盖。