在bash中。因此001 file.ext
变为file.ext
。我该怎么做?
答案 0 :(得分:1)
您可以使用两个seds表达式。第一个删除最后一个空格中的所有内容,第二个删除前导数字。
$ echo "001 fiile.ext" | sed -e 's/^.* //' -e 's/^[0-9]*//g'
fiile.ext
答案 1 :(得分:1)
for f in *file.ext
do
newname=$(echo "$f" | sed 's/^[0-9 ]*//')
mv "$f" "$newname"
done
或纯粹的Bash:
shopt -s extglob
for f in *file.ext
do
mv "$f" "${f##+([0-9 ])}"
done
答案 2 :(得分:0)
如果您只想转换文件名(如脚本中的变量),您可以执行以下操作:
[[ $FILENAME =~ ^[0-9\s]+(.+) ]] && FILENAME="${BASH_REMATCH[1]}"
如果您尝试在文件系统上实际重命名文件名,则更合适
for F in *.ext; do
[[ $F =~ ^[0-9\s]+(.+) ]] && mv "$F" "${BASH_REMATCH[1]}"
done