【问题标题】:Trim a file name in Unix在 Unix 中修剪文件名
【发布时间】:2015-09-03 04:08:41
【问题描述】:

我有一个文件名

ROCKET_25_08:00.csv

我想把文件名修整为

ROCKET_25_.csv

我尝试了mv,但mv 不是我需要的,因为在某些情况下文件可能不止一个。

我想要名字直到第二个_

如何在 unix 中获得它。

请指教。

【问题讨论】:

  • 文件可能不止一个的情况是什么意思?
  • 可以有两个文件 ROCKET_25_08:00.csv 和 ROCKET_25_08:04.csv
  • 在这种情况下,我想一次性修剪两个文件。
  • 你不能有两个同名的文件。要合并文件吗?

标签: unix filenames trim


【解决方案1】:

有一些实用程序可以提供更灵活的重命名。但是,除了包含 UNIX 工具(如 sed)之外不使用任何其他工具的一种解决方案是:

ls -d * | sed -re 's/^([^_]*_[^_]*_)(.*)(\....)$/mv -v \1\2\3 \1\3/' | bash

这只适用于一个目录,它不会处理子目录。

【讨论】:

    【解决方案2】:

    根本不清楚您实际上要做什么,但是如果您只想删除最后一个下划线和句点之间的文本,您可以这样做:

    f=ROCKET_25_08:00.csv
    echo ${f%_*}_.csv
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-10
      • 2020-05-01
      • 1970-01-01
      • 2019-03-31
      • 2012-07-17
      • 2020-02-25
      相关资源
      最近更新 更多