Bash:处理带有特殊字符的文件

标签 bash special-characters

我有一个 bash 脚本,可以将我的音乐库转换为 mp3 格式,并将它们复制到不同的目录。由于目录和文件部分包含特殊字符,如(、)、&,脚本失败。

我已经设置:

IFS=$(echo -en "\n\b")

编码命令的代码如下:

ffmpeg -i ${f} -ab 192k ${SDCARD}/$(basename ${t})/$(basename ${d})/$(basename ${f%.*}.mp3)

文件结构如下 $SDCARD/$t/$d/$f 如下: /Volumes/MUSIC/Jessie Ware/Devotion (美国版)/09 If You're Never Gonna Move.mp3

有什么建议吗?

谢谢 卢卡斯

最佳答案

在引用变量时引用它们通常是一种很好的做法,以防止您遇到的问题类型。参见 http://tldp.org/LDP/abs/html/quotingvar.html了解更多。

一个例子:

jed@MBP:~$ FOO="one two three"
jed@MBP:~$ for i in $FOO; do echo The value of i is\: $i;done
The value of i is: one
The value of i is: two
The value of i is: three

jed@MBP:~$ for i in "$FOO"; do echo The value of i is\: $i;done
The value of i is: one two three

(如果 Kevin 回来并将他的评论作为答案,您应该将他的评论标记为正确,这样他才能获得第一个回答的荣誉。)

关于Bash:处理带有特殊字符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20645175/

相关文章:

php - 删除标点符号、符号、变音符号、特殊字符的最佳方法是什么?

javascript - jquery ajax获取特殊字符(元音变音)

swift - 如何删除 Swift 3 中的特殊字符

C# 查找文件名中的特殊字符

使用特殊字符在 solr 中搜索

linux - 首选终端脚本语言

linux - 在 Bash 脚本中解析命令输出

linux - Bash中的递归广度优先遍历

bash - 为什么cp在一台服务器上显示 "is not a directory"而在另一台服务器上没问题

bash - 查找文件名中的空格