首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash重命名计数器回路

bash重命名计数器回路
EN

Stack Overflow用户
提问于 2014-04-15 10:00:24
回答 3查看 187关注 0票数 2

我怎么才能在循环中做到这一点呢?

我需要将小脚本放在cron选项卡中,这将获取实际日志,并将它们放入log-1文件中。重命名log-1文件到log-2文件.Bassicaly我需要一周前的日志文件,按log-1排序为日志-7日志,其中log-7是7天前的日日志,每天更新。

Bassicaly我需要在一个小循环中这样做,并且在语法上有问题:

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-15 10:04:18

你可以:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2014-04-15 10:10:48

虽然我同意你的问题显示出一些缺乏努力,但我无法抗拒挑战。;)

代码语言:javascript
复制
for file in log-*
do
    lognr=$(echo $file | sed "s/log-\(\d*\)/\1/")
    mv "$file" "log-$(expr $lognr + 1)"
done
mv logactual log-1
票数 0
EN

Stack Overflow用户

发布于 2014-04-15 10:15:25

谢谢你的回答,由于缺乏努力,我有:

代码语言:javascript
复制
COUNTER=7
until [  $COUNTER -gt 0 ]; do
mv log-($COUNTER -1) log-$COUNTER
let COUNTER-=1
done

不知道如何做日志($COUNTER -1)并且在谷歌上搜索它时遇到困难。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23080453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档