gpt4 book ai didi

linux - 从文件名中抓取 2 个数字然后插入到命令中

转载 作者:太空狗 更新时间:2023-10-29 12:32:20 34 4
gpt4 key购买 nike

总的来说,我对编程有点陌生,我不确定如何在我的 bash 脚本中完成这项任务。

快速背景:当将我的音乐库(以前由 iTunes 组织)导入 Banshee 时,所有文件都被复制以适合 Banshee 的数字样式(例如:02。而不是 02)最重要的是,iTunes 显然没有将ID3标签保存到文件中,所以很多都是空白的。所以现在我有几千个标签来修复和删除重复的文件。

为了自动化这个过程,我开始学习编写 bash 脚本。我想出了一个脚本(you can see here)做四件事:删除不必要的 iTunes 文件,从用户那里获取有关 ID3 标签信息的输入并将其存储在变量中,清除所有文件中的任何现有标签信息,写入带有信息的新标签使用名为 eyeD3 的程序从用户处获取。

现在,这就是我遇到问题的地方。这个脚本基本上是盲目地将信息写入目录中的所有 mp3 文件。这适用于所有文件共有的标签 - 例如艺术家、专辑、总轨道、年份等。但我不能用这种方法标记每个单独的轨道编号。所以我仍然手动编辑 track# 标签,一次一个。这是我真的不想做 2000 多次的事情。

文件名都是这样的:

01. song1.mp3
02. song2.mp3
03. song3.mp3

将轨道号写入标签的命令如下所示:

$ eyeD3 -n 1 "01. song1.mpg"

所以...我不确定如何实现自动化。我需要获取每个文件名的前两位数字,将它们存储在某处,然后将每个数字调用到单独的 eyeD3 命令中。

最佳答案

您可以使用 globbing 遍历文件,并使用子字符串扩展来捕获文件名的前两个字符:

for f in *mp3; do
eyeD3 -n ${f:0:2} "$f"
done

关于linux - 从文件名中抓取 2 个数字然后插入到命令中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23091638/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com