抓取 - 和 .mp3 之间的文件名文本并通过管道传输到文本文件中
Grab filename text between - and .mp3 and pipe into text file
我有一个充满 .mp3 文件的目录,其中的文件名包含一个 youtube link。
youtube watch URL 的所有部分特别以 - 开头并以 .mp3 结尾。
但是,有一个问题。
一些 youtube link 中有 -'s,一些标题中也有 -'s。
我只需要从标题中提取这部分视频:
https://www.youtube.com/watch?v= (dQw4w9WgXcQ)
用youtube-dl下载的视频标题是:
Rick Astley - Never Gonna Give You Up-dQw4w9WgXcQ.mp3
视频的标题是:
Rick Astley - 永远不会放弃你
我想要完成的是获取我已经下载的所有 links 并将其放入一个文本文件中,告诉 youtube-dl 不要 re-download 它们(下载存档)
我该怎么做? (最好使用 bash sed 命令,但此时我愿意尝试任何事情。)
比你想象的要容易:贪心的.*
后面跟着-
会吃掉所有的-
,直到最后一个:
# first get the titles an ids into a tab-separated multiline string
both=`find * -name "*.mp3" | sed 's/\(.*\)-\(.*\)\.mp3/\t/'`
# then cut it into two multiline strings
titles=`echo "$both" | cut -f1`
ids=`echo "$both" | cut -f2`
# or process each title-id pair one-by-one
echo "$both" | while IFS=$'\t' read title id; do
echo "$title"
echo "$id"
done
我有一个充满 .mp3 文件的目录,其中的文件名包含一个 youtube link。
youtube watch URL 的所有部分特别以 - 开头并以 .mp3 结尾。
但是,有一个问题。
一些 youtube link 中有 -'s,一些标题中也有 -'s。
我只需要从标题中提取这部分视频:
https://www.youtube.com/watch?v= (dQw4w9WgXcQ)
用youtube-dl下载的视频标题是:
Rick Astley - Never Gonna Give You Up-dQw4w9WgXcQ.mp3
视频的标题是:
Rick Astley - 永远不会放弃你
我想要完成的是获取我已经下载的所有 links 并将其放入一个文本文件中,告诉 youtube-dl 不要 re-download 它们(下载存档)
我该怎么做? (最好使用 bash sed 命令,但此时我愿意尝试任何事情。)
比你想象的要容易:贪心的.*
后面跟着-
会吃掉所有的-
,直到最后一个:
# first get the titles an ids into a tab-separated multiline string
both=`find * -name "*.mp3" | sed 's/\(.*\)-\(.*\)\.mp3/\t/'`
# then cut it into two multiline strings
titles=`echo "$both" | cut -f1`
ids=`echo "$both" | cut -f2`
# or process each title-id pair one-by-one
echo "$both" | while IFS=$'\t' read title id; do
echo "$title"
echo "$id"
done