【问题标题】:Remove pattern form filenames删除模式表单文件名
【发布时间】:2013-10-03 13:43:19
【问题描述】:

我有很多文件名为

01- El monstruo del lago ness [www.newpct.com].avi

Inspector gadchet 01- El monstruo del lago ness.avi

在这两种类型中,我想改成这个

01- El monstruo del lago ness.avi

bash 中是否有任何脚本可以从多个文件中同时删除一个模式? (模式可以在文件的开头、结尾或中间)

P:单词之间有空格

【问题讨论】:

  • 我们需要更多信息。例如,为什么必须删除“Inspector gadchet”?必须保留字符串的哪一部分?顺便说一句:盗版是犯罪!明白了! :P
  • 该字符串需要删除,因为我只想保留章节标题和编号。

标签: linux filenames


【解决方案1】:

假设您有rename(perl 附带的那个),以下可能对您有用:

rename 's/^[^\d]+//;s/\s?\[.*\]//' *.avi

【讨论】:

  • 第一部分s/^[^\d]+// 删除任何不是数字的东西。第二部分 s/\s?\[.*\]// 删除 [] 和前面的空格(如果存在)之间的所有内容。
  • 好的,但这仅适用于 [] 之间的文本"----blabla",没有特别的位置
  • 恐怕如果您在explanation 之后仍有疑问,您需要阅读有关正则表达式的手册。
【解决方案2】:

您可以使用不同的解决方案,包括类似的解决方案

for fname in `find ./ -name "*.avi" `; do mv $fname `echo $fname | sed -e 's/pattern/replace/g'`;done

警告,有潜在危险。尝试使用 echo 而不是 mv 来查看将移动的内容。

【讨论】:

    猜你喜欢
    • 2014-01-06
    • 2018-01-30
    • 1970-01-01
    • 2013-10-06
    • 2018-08-30
    • 1970-01-01
    • 2010-12-21
    • 2023-04-01
    • 2014-09-10
    相关资源
    最近更新 更多