linux - 如何通过保留文件名的前 6 个字符并删除其余字符来重命名文件?

标签 linux

我的文件名如下:Rv0012_gyrB.txt、Rv0001_Rv.txt 如何通过保留文件名的前 6 个字符并删除其余字符来重命名文件? 我想要的输出应该是: Rv0012.txt 和 Rv0001.txt 请让我知道如何在 Linux 中使用脚本处理多个文件。

最佳答案

for file in *; do
  filename=${file%_*}
  fileext=${file##*.}
  if [ "$fileext" = "$file" ]; then
    mv "$file $filename"
  else
    mv "$file $filename.$fileext"
  fi
done

假设您想在第一次出现下划线时分隔,这应该可以做到。

关于linux - 如何通过保留文件名的前 6 个字符并删除其余字符来重命名文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43061468/

相关文章:

c - 使用宏定义两个局部变量但具有相同的地址

c - gettimeofday clock_gettime 生成唯一编号的解决方法

java - 具有单个目标网络的Linux多网关

c++ - 套接字未在 Linux (ubuntu) 上发送全部内容

linux - 如何将一个目录文件(包括隐藏文件)复制到另一个目录?

java - 如何在没有 IDE 的情况下从 Sphinx4 编译和运行 HelloWorld.java 示例?

linux - ssl/qsslsocket_openssl.cpp :1414: error: q_ssl_ctrl was not declared in this scope error

linux - 无法从 Windows 连接到 Redis Linux 服务器

php - 在 Windows Server 系统上托管 php 应用程序。有什么问题/建议吗?

c - 如何为已分配的页面获取新的虚拟内存地址?