【问题标题】:Linux rename cannot replace hyphenLinux 重命名不能替换连字符
【发布时间】:2022-01-04 13:07:07
【问题描述】:

我想删除这些文件中的最后一个-2

$ ls ./
ZVul-1-2s-0-C1-2.fit  ZVul-1-2s-2-C1-2.fit  ZVul-2-2s-1-C2-2.fit

$ rename "-2.fit" ".fit" ./*
rename: invalid option -- '2'
Try 'rename --help' for more information.

$ rename -V
rename from util-linux 2.37.2

$ ls ./
ZVul-1-2s-0-C1-2.fit  ZVul-1-2s-2-C1-2.fit  ZVul-2-2s-1-C2-2.fit

它把我的连字符作为一个选项。我能做什么?

我已经从here 尝试过rename -n 's/-(?=\d)//' *.xxx,但是不行,看来这是不支持 Perl regs 的 C++ 版本。

for i in *; do mv "$i" "`echo $i | sed "s/\(.*\)-2/\1/"`"; done

这行得通。但是rename 应该更简单。

【问题讨论】:

  • rename -- "-2.fit" ".fit" ./*

标签: linux rename


【解决方案1】:

@KamilCuk 的rename -- "-2.fit" ".fit" ./* 是一个答案,谢谢!

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2014-04-26
  • 2016-08-06
  • 1970-01-01
  • 2015-03-24
  • 2018-12-31
  • 2013-12-27
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
相关资源
最近更新 更多