我可以访问一个带有随机名称的mp3文件列表,这些文件来自一个免费许可证项目,该项目为维基百科提供了单词的音频文件。 Chinese list of files here / here和a sample file here
但是,每个文件还包含有价值的元数据:
$avconv -i ./audio.flac 2>&1
>Metadata:
TITLE : 高低
LICENSE : Creative Commons BY-SA 3.0 U.S
COPYRIGHT : (c) 2009 Yue Tan
ARTIST : Tan
DATE : 2009-07-08
GENRE : Speech
SWAC_LANG : cmn
SWAC_TEXT : 高低
SWAC_ALPHAIDX : gāodī
SWAC_SPEAK_NAME : Tan
SWAC_SPEAK_GENDER: F
SWAC_SPEAK_BIRTH_YEAR: 1978
SWAC_SPEAK_LANG : zho
SWAC_SPEAK_LANG_REGION: Liaoning
SWAC_SPEAK_LIV_COUNTRY: FR
SWAC_SPEAK_LIV_TOWN: Caen
SWAC_PRON_PHON : gāodī
SWAC_COLL_SECTION: HSK niveau IV
SWAC_COLL_LICENSE: Creative Commons BY-SA 3.0 U.S
SWAC_COLL_COPYRIGHT: (c) 2009 Yue Tan
SWAC_TECH_DATE : 2009-07-08
SWAC_TECH_SOFT : Shtooka Recorder/1.3
Duration: 00:00:01.25, bitrate: 392 kb/s
Stream #0.0: Audio: flac, 44100 Hz, 1 channels, s16
如何将元数据SWAC_ALPHAIDX
的值作为Shell变量获取,以便我可以相应地重命名我的文件?
所以我可能会做类似
的事情$mv -input ./cmn-0a0a8a8b.flac -output ./new/cmn-$ALPHAIDX.flac
# ouput being cmn-gāodī.flac
编辑:也会接受其他元数据的回答,如果不知情,则无需管理gāodī的特殊字符。
答案 0 :(得分:3)
从信息转储中解析出您想要的数据,将其捕获到变量中,然后使用它:
for file in ./*.flac
do
alphaidx=$(avconv -i "$file" 2>&1 | sed -ne 's/.*SWAC_ALPHAIDX *: //p')
mv "$file" "./cmn-$alphaidx.flac"
done
使用gāodī (SWAC_ALPHAIDX)
或CJK等变音字符高低 (SWAC_TEXT)
。
注意:这是一个重命名功能,而不是复制重命名功能。