簡體   English   中英

bash重命名計數器循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM