[英]bash renaming counter loop
我怎樣才能做到這一點循環?
我需要在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
你可以做:
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
我同意您的問題表明缺乏努力,但我無法抗拒這一挑戰。 ;)
for file in log-*
do
lognr=$(echo $file | sed "s/log-\(\d*\)/\1/")
mv "$file" "log-$(expr $lognr + 1)"
done
mv logactual log-1
謝謝您的回答,由於缺乏努力,我遇到了:
COUNTER=7
until [ $COUNTER -gt 0 ]; do
mv log-($COUNTER -1) log-$COUNTER
let COUNTER-=1
done
不知道如何執行該日志-($ COUNTER -1),並且無法進行谷歌搜索
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.