我已经搜索了这个,但我想对使用路径没有很大的需求.所以我正在尝试两个写一个bash脚本来使用tta和cue文件转换我的音乐集.我的目录结构如下:tta文件的/Volumes/External/Music/Just/Some/Dirs/Album.tta和cue表的/Volumes/External/Cuesheets/Just/Some/Dirs/Album.cue.
我目前的方法是将/ Volumes/External设置为"root_dir",并将album.tta文件的相对路径设置为$ ROOT_DIR/Music(在这种情况下,这将是Just/Some/Dirs/Album.tta),然后添加此结果为$ ROOT_DIR/Cuesheets并将后缀从.tta更改为.cue.
我目前的问题是,dirname按原样返回路径,这意味着/ Volumes/External/Music/Just/Some/Dirs不会转换为./Just/Some/Dirs/当我当前文件夹为$ ROOT_DIR/Music时给出了绝对路径.
添加://如果有人遇到类似的问题,这是脚本:
#!/bin/bash
ROOT_DIR=/Volumes/External
BASE="$1"
if [ ! -f "$BASE" ]
then
echo "Not a file"
exit 1
fi
if [ -n "$2" ]
then
OUTPUT_DIR="$HOME/tmp"
else
OUTPUT_DIR="$2"
fi
mkfdir -p "$OUTPUT_DIR" || exit 1
BASE=${BASE#"$ROOT_DIR/Music/"}
BASE=${BASE%.*}
TTA_FILE="$ROOT_DIR/Music/$BASE.tta"
CUE_FILE="$ROOT_DIR/Cuesheets/$BASE.cue"
shntool split -f "${CUE_FILE}" -o aiff -t "%n %t" -d "${OUTPUT_DIR}" "${TTA_FILE}"
exit 0
Run Code Online (Sandbox Code Playgroud)
如果您的Cuesheets目录始终与您的音乐位于同一目录中,您只需从路径中删除root_dir,剩下的就是相对路径.如果你有在album_path(album_path=/Volumes/External/Music/Just/Some/Dirs/Album.tta)中的album.tta 和你的root_dir set(root_dir=/Volumes/External)的路径,那就做${album_path#$root_dir}.这会修剪来自album_path前面的root_dir,所以你就可以了album_path=Just/Some/Dirs/Album.tta.
有关bash字符串操作的更多信息,请参阅bash docs
编辑://将$ {$ album_path#$ root_dir}更改为$ {album_path#$ root_dir}
| 归档时间: |
|
| 查看次数: |
8405 次 |
| 最近记录: |