问题描述
我有70个shell脚本,分别名为1.man-pages.sh,2.tcl.sh,3.expect.sh等。
我犯了一个错误,需要在数字上加1以重命名这些文件(例如1.man-pages.sh => 2.man-pages.sh,3.tcl.sh 4.expect.sh)
用手分别播放这些内容非常繁琐。有没有人建议重击一线?
解决方法
不是唯一的,而是封闭的……
IFS=$'\n'
for f in $(printf '%s\n' [0-9]* | sort -rnt '.' -k1); do
mv "$f" "$(( ${f%%.*}+1 )).${f#*.}"
done
,
for file in *.sh; do
number=$(cut -d '.' -f1 <<< $file)
name=$(cut -d '.' -f2 <<< $file)
extensiton=$(cut -d '.' -f3 <<< $file)
re='^[0-9]+$'
if [[ $number =~ $re ]]; then
mv $file "$(($number + 1)).$name.$extensiton"
fi
done