linux - 更改多个文件命令行

标签 linux bash ubuntu

我使用 mp3splt 从 mp3 混音中分离了一些轨道。

BASH: (mp3splt -c('**!!***use .cue file***!!**') [cuefile.cue] [nonstopmix.mp3] ~对于任何感兴趣的人来说,是在 Ubu 仓库中~)

最后我得到了这些文件名:“Antares” - 01 - “Xibalba”.mp3 这不是我喜欢的格式,现在我做了一个小项目来用 shell 脚本更改它们,但它更难超出我的预期。

我想更改文件名:

"Antares" - 01 - "Xibalba".mp

到:

01-Antares_-_Xibalba.mp3

到目前为止我用过:

for var in *.mp3; do mv $var {var/"/}; done

我可以重复直到我完成,删除 0x 数字并添加一个,但我想这样做更有效率。

谁能给我一个指针(!不是脚本!)? 我还是想自己写,但是选项太多,我有点不知所措。

到目前为止我想使用这个程序流程:

  1. 读取所有包含.mp3的文件名并声明为变量$var

  2. 从引号中去除 $var

  3. 选择0x数字,附加分隔符_(0x_)

  4. 将0x_移动到字符串的开头

  5. 选择剩余的'- -'并更改为'-'

完成

使用哪些 bash 程序?尤其是更改 0x 让我感到困惑,因为我需要一个循环来递增此数字并测试它是否存在于文件名变量中,然后必须更改它。

最佳答案

在 python 2.x 中很容易做到。您可以使用您想要的任何语言使用此逻辑。

import string
a=raw_input('Enter the name of song')
a=a.replace('"', "")
a=a.replace('.mp', ' .mp3')
words = a.split()
print words[2]+'-'+words[0]+'_-_'+words[4]+words[5]

逻辑:

我删除了 ",然后将 .mp 转换为 .mp3,然后拆分字符串,创建一个列表(数组),然后根据需要打印元素。

关于linux - 更改多个文件命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19067201/

相关文章:

linux - FTP 服务器如何处理来自同一端口的多个连接?

python - Conda安装环境(PyFerret)不成功

linux - 如何格式化/etc/passwd 中用户帐户的输出

bash - 如何使用 inotifywait 来查看文件夹中的文件而不是文件夹中的文件

linux - 如何执行从 Linux SUSE 到 Ubuntu 的 Apache 2 配置迁移?

c++ - 特定于 Cell Linux 环境的 GDB 文档在哪里?

c - 看门狗:设备或资源忙

linux - 如何显示ack-grep的进度

bash - 如何从文档中删除重复的短语?

docker - 为什么 ubuntu 镜像大小比其 iso 文件小得多?