linux – Debian下的Sox批处理程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – Debian下的Sox批处理程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1457字,纯文字阅读大概需要3分钟。
内容图文
![linux – Debian下的Sox批处理程序](/upload/InfoBanner/zyjiaocheng/968/8937101599cd47a5be55a4c95145f15d.jpg)
我想重新采样我在文件夹上获得的一堆wav文件.
我的脚本是这样的:
for f in *.wav; do sox “$f” -r 48000 “${f%%%.wav}.wav”; done
控制台给我这个错误:“sox FAIL格式:无法打开输入文件`”90.wav“’:没有这样的文件或目录”等等,放置在该文件夹上的300个文件.
如何批量处理这些文件?为什么它给我这个错误?
非常感谢!
解:
for i in *wav; do echo $i; sox $i -r 48000 ${i%%.wav}r.wav; done
解决方法:
摘要:这是引号符号
问题在于双引号:
for f in *.wav; do sox “$f” -r 48000 “${f%%%.wav}.wav”; done
上面的双引号是非标准的.要使它们由shell正确处理,必须使用标准的ASCII引号:
for f in ./*.wav; do sox "$f" -r 48000 "${f%%%.wav}.wav"; done
另外,请注意${f %%%.wav}会从输入文件名的末尾删除所有出现的%.wav. ${f %%%.wav} .wav在删除任何%.wav后缀后,将一个.wav重新添加到最后.你可能想要别的东西.
验证
根据问题,使用错误的引号字符,观察错误消息:
$for f in *.wav; do sox “$f” -r 48000 “${f%%%.wav}.wav”; done
sox FAIL formats: can't open input file `“90.wav”': No such file or directory
请注意,错误消息中的文件名显示为文件名周围有两组引号.这是您在问题中根据错误消息看到的内容.外部单引号由sox提供.内部双引号是命令行中提供的有趣引号字符.因为它们是非标准字符,所以shell将它们保留在原位并将它们传递给sox命令.
文件90.wav存在时,不存在名称为“90.wav”的文件.因此,错误.
结论
坚持使用shell命令的标准ASCII字符.
如果使用花哨的文字处理编辑器输入shell命令,而这些编辑器可以替换为排版漂亮但非标准的字符,则很容易发生此问题.正如三人指出的那样,当从具有不适当的排版样式的网站进行复制和粘贴时也会发生这种情况.
内容总结
以上是互联网集市为您收集整理的linux – Debian下的Sox批处理程序全部内容,希望文章能够帮你解决linux – Debian下的Sox批处理程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。