首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用util-linux重命名命令

使用util-linux重命名命令
EN

Stack Overflow用户
提问于 2014-02-16 06:43:21
回答 3查看 2.8K关注 0票数 8

我一直试图使用util版本的rename (2011)替换所有文件中的特定字符串。虽然我意识到perl版本的rename会提供一个解决方案,但我不知道如何使用这个版本的rename。

具体的例子是一组文件(某样东西-2013.mkv,某样东西-2011.mkv),我正在尝试删除双破折号并替换为一个空格。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-16 07:33:29

问题是rename使用getopt进行参数解析,因此对双破折号(--)有一个特殊的解释。--表示参数的结束。

一个解决方案是避免在命令中使用--。一种方法是将命令分解为子目标,例如将单个破折号转换为下划线,然后将两个下划线转换为单个破折号:

代码语言:javascript
复制
$ rename - _ *.mkv
$ rename __ - *.mkv

一种不那么迂回的方法是实际使用getopt行为

代码语言:javascript
复制
$ rename -- -- - *.mkv
票数 11
EN

Stack Overflow用户

发布于 2021-04-23 08:30:33

来自util的重命名在Ubuntu中的/usr/bin/rename.ul中。所以您可以使用rename.ul命令。

票数 1
EN

Stack Overflow用户

发布于 2014-02-16 06:49:42

代码语言:javascript
复制
mkdir TEMP
numbers=2011
find . -name "*.mkv" | while read filename
do
  echo mv "$filename" "TEMP/somethingelse_"$((numbers++)).mkv
  rm filename
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21808180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档