我为日志(log)文件创建了错误的名称. 示例名称的 struct 为:YYYY-MM-DD_HH:MM:SS-main-DEBUG.log

上一次我试图用cp命令将文件从目录复制到USB,但我得到了异常. 我用谷歌搜索了一下,发现cp不喜欢像":"这样的特殊符号. 我在那里发现了类似的问题cp: cannot create regular file: Invalid argument

如何从以下位置更改名称(删除:):

2023-06-09_22:24:01-main-DEBUG.log

致:

2023-06-09_222401-main-DEBUG.log

我有很多日志(log)文件,我想bash脚本与正则表达式将是最好的.大概是这样:Rename multiple files in Linux following pattern

我从上面的链接复制了解决方案,但在此处进行了更改:

#! /bin/bash
for file in *[^.]log ; do
    prefix=${??????} <--what here?
    mv "$file" "$prefix".log
done

正则表达式应从文件名中删除":". 前缀变量的正则表达式应该是什么样子?我不能建造它.雷克斯已经不在我的脑子里了. 请帮帮忙.

推荐答案

try

for name in *:*.log; do
    newname=${name//:/-}
    echo mv -v -n -- "$name" "$newname"
done

Linux相关问答推荐

如何更正我的CMakeLists.txt,使我的项目同时构建在Linux和Windows上?

仅使用Find搜索32字符长的目录

如何在Linux上获取clang中的模板实例化统计?

Git - 打印以不同编码混合的文件

不带空格的字符串连接形成文件路径

Linux内核模块构建过程中,许可信息添加了前缀

为什么`__vfprintf_internal`(`stdio.h`中的`printfn`)强制`$rbp`在我的x86-64机器上向前跳转6313864字节?

为什么我的 Docker 进程不断在我的 Raspberry Pi 上重新启动?

树莓派拒绝连接到瓶子服务器

如何在 Linux 中向应用程序发出信号而不杀死它?

为什么我不能将 Unix Nohup 与 Bash For 循环一起使用?

未找到框架.NETFramework,Version=v4.7.1的参考程序集

在 Node.JS 中引用相对于应用程序根目录的文件的正确方法

Linux 非阻塞 fifo(按需日志(log)记录)

SVN 错误:无法将字符串从本机编码转换为UTF-8

如何使用文件描述符刷新写入?

rm 没有释放磁盘空间

更改 /etc/profile 后,我需要做什么来重置我的 shell?

CentOS:在 PHP 安装中启用 GD 支持

如何将 ISO8859-15 转换为 UTF8?