删除 Linux 中文件夹中所有文件的文件名的特定部分(第二个破折号之后的内容)



我使用命令行实用程序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文件,用某种循环和sedgrep和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

这将修复已经下载的文件的文件名

查看这里的文档:http://rg3.github.io/youtube-dl/documentation.html,您应该能够完全使用youtube-dl执行以下操作:

youtube-dl --extract-audio --audio-quality 0 --audio-format mp3 URL -o %(title)s.%(ext)s

相关内容

最新更新