linux - 满足以下要求的 shell 脚本

标签 linux shell unix sh

我有一个名为 access.log 的文件,它始终从服务器接收数据。所以我需要将 access.log 文件的数据复制到几个文件中,而不影响任何文件中的数据。 例如:如果我执行脚本,需要将数据复制到另一个文件中(文件名应该是access_1.log)并且access.log文件应该被截断。如果我第二次执行相同的脚本,数据应复制到 access_2.log 文件,并且 access.log 文件应被截断。因此,如果运行该文件 10 次,则需要创建 10 个文件。 我已经尝试过下面的脚本,但计数值在我的代码中没有增加。因此总是获得与 access_1.log 相同的文件名,并且我们也在更改数据。

count=1
cp access.log access_$count.log
>access.log
count=`expr $count + 1`

请帮助我

最佳答案

试试这个,让我知道它是否有效。

name='access'
    if [[ -e $name.log ]] ; then
        i=1
        while [[ -e $name_$i.log ]] ; do
            let i++
        done
        name=$name_$i
    fi
    cp -r /path/to/access.log  "$name".log
    cat /dev/null > /path/to/access.log

关于linux - 满足以下要求的 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44676104/

相关文章:

linux原始以太网套接字绑定(bind)到特定协议(protocol)

linux - 无论如何要更改默认的 exec 调用长度?

bash - 需要帮助在 bash 脚本中使用 grep/egrep 匹配模式

linux - AWS 实例未显示正确的可用空间

linux - 在 Ubuntu 上找不到谁设置了 http_proxy 环境变量

linux - 将 SSL 证书和中间体从给定的 https URL 导出到文件

regex - 为什么这个正则表达式测试不起作用?

unix - 如何将 find 命令返回的文件列表通过管道传递给 cat 以查看所有文件

bash - 使用 grep 显示具有奇数个字符的行

perl - 部署脚本需要更新配置文件中的整数