我使用命令行实用程序 youtube-dl
从 YouTube 下载视频,并使用 avconv
将视频制作为 mp3。我在 Ubuntu 14.04 下做这个并且非常满意。
该实用程序下载文件并使用以下命名方案保存它们:
TITLE(artist-track)-ID.mp3
所以实际的文件名看起来像EPIC RAP BATTLE of MANLINESS-_EzDRpkfaO4.mp3
。
文件夹中的一些其他文件名如下所示:
EPIC RAP BATTLE of MANLINESS-_EzDRpkfaO4.mp3
Martin Garrix - Animals (Official Video)-gCYcHz2k5x0.mp3
Stromae - Papaoutai-oiKj0Z_Xnjc.mp3
起初,这没有问题。当我在 Rhythmbox 中听音乐时,它并没有打扰我。 但是,当转移到手机或其他设备时,看到这么长的名称会很令人困惑,有些播放器(例如三星的播放器)将名称的最后部分(第二个破折号后的 id)视为专辑或其他内容。
所以我想创建一个 Bash 脚本,删除所有文件名称中第二个破折号后面的内容,即转换名称
Martin Garrix - Animals (Official Video)-gCYcHz2k5x0.mp3
名字
Martin Garrix - Animals (Official Video).mp3.
我认为可以编写这样一个 Bash 文件来通过某种循环和 sed
或 grep
和 mv 来完成此操作。
此外,是否可以指示 youtube-dl
从现在开始排除该 ID?
我目前正在使用命令下载
youtube-dl --extract-audio --audio-quality 0 --audio-format mp3 URL
最佳答案
使用 bash 脚本:
#!/bin/bash
shopt -s extglob
for A in *.mp3; do
B=${A/%-+([[:alnum:]_]).mp3/.mp3}
[[ $A != "$B" ]] && mv "$A" "$B"
done
这将修复已下载文件的文件名。
关于linux - 在Linux中删除文件夹中所有文件的文件名的特定部分(第二个破折号之后的内容),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24165168/