我怎么能在循环中做到这一点?
我需要在cron-tab中放置一个小脚本,它将获取实际日志并将它们放在log-1文件中。将log-1文件重命名为log-2文件... Bassicaly我需要有一周的日志文件,按log-1到log-7日志排序,其中log-7是7天前的日志,每天更新。
Bassicaly我在一个小循环中需要这个并且语法有问题:
mv log-6 log-7
mv log-5 log-6
mv log-4 log-5
mv log-3 log-4
mv log-2 log-3
mv log-1 log-2
mv logactual log-1
答案 0 :(得分:0)
你可以这样做:
for ((i=7; i>=2; i--)); do mv "log-$((i-1))" "log-$i"; done; mv logactual log-1
mv log-6 log-7
mv log-5 log-6
mv log-4 log-5
mv log-3 log-4
mv log-2 log-3
mv log-1 log-2
mv logactual log-1
答案 1 :(得分:0)
虽然我同意你的问题显示缺乏努力,但我无法抗拒挑战。 ;)
for file in log-*
do
lognr=$(echo $file | sed "s/log-\(\d*\)/\1/")
mv "$file" "log-$(expr $lognr + 1)"
done
mv logactual log-1
答案 2 :(得分:0)
感谢您的回答,由于缺乏努力,我有:
COUNTER=7
until [ $COUNTER -gt 0 ]; do
mv log-($COUNTER -1) log-$COUNTER
let COUNTER-=1
done
不知道怎么做那个日志 - ($ COUNTER -1)并且在搜索时遇到了麻烦