【问题标题】:How to rename multiple files by truncating the name with command line?如何通过使用命令行截断名称来重命名多个文件?
【发布时间】:2018-06-12 19:20:15
【问题描述】:

2001.png 2002.png 2003.png 2004.png 2005.png 2006.png

假设我想以编程方式重命名这些图片:

1.png 2.png 3.png 4.png 5.png 6.png

使用终端的最佳方法是什么?它是否涉及正则表达式?在这种情况下,我会假设是这样,因为我正在截断字母

【问题讨论】:

  • 当您说“终端”时,您的意思是“外壳”吗?哪一个?你尝试过什么吗? “最佳方式”实际上几乎是基于意见的。如果您展示了您尝试过的内容,那将会很有用。它总是要删除的前三个字符吗?他们总是完全是200吗?
  • 感谢您回复我的第一篇 stackoverflow 帖子。是的,我的意思是外壳。是的,我尝试了一些方法——在 stackoverflow 中搜索解决方案。是的,在这个小用例中,它每次都会截断 200。这篇文章是半相关的:stackoverflow.com/questions/24102974/…
  • 您应该edit 使用该信息更新问题。

标签: terminal


【解决方案1】:

您可以使用移动命令获取当前目录中的所有文件并更改其名称。在这种情况下,您想从第 3 个字符获取名称的子字符串(在第 3 个字符之后剩余 5 个符号,因此从第 3 个字符开始取 5 个字符 - file:3:5)。

#!/bin/bash
for file in *.png; do
    new_file=${file:3:5}
    mv "$file" "${new_file%}"
done

【讨论】:

  • % 是错字吗?它没有伤害,但它也没有做任何事情(它从new_file 的末尾删除空字符串)。
猜你喜欢
  • 2014-12-23
  • 2015-07-19
  • 2014-10-14
  • 2012-12-28
  • 2017-04-07
  • 1970-01-01
  • 2012-12-28
  • 2021-02-14
  • 1970-01-01
相关资源
最近更新 更多