我正在使用终端中的命令mac
来压缩和解压缩 Monkey's Audio 文件。但是,我想找到一种方法来一次对多个文件执行此操作。是否有mac
我不知道的程序技巧,或者是否有其他程序可以提供帮助?
我只能在 WINE 下使用 Windows 的 GUI。请帮我摆脱这个问题 :)
答案1
不,mac
一次只处理一个文件,因此您必须解决它。
假设您要编码/解码的文件位于特定文件夹或子文件夹中,而不是任意路径,则可以使用以下组合来完成寻找,sed和参数。
例如,要对特定文件夹及其所有子文件夹中的所有 WAV 文件进行编码,输出文件仅具有 APE 扩展名,使用快速-c1000
预设,您可以键入:
find ~/path/to/folder -name *.wav | sed 's/....$//g' \
| xargs -I MACFILE mac "MACFILE.wav" "MACFILE.ape" -c1000
解释:
find
在给定路径下查找所有带有 wav 扩展名的文件,并将其输出。- 您可以使用
`pwd`
(带反引号)作为当前文件夹的简写。 - 添加参数
-maxdepth 0
以仅保留在当前文件夹而不进入子文件夹。
- 您可以使用
- 这sed表达式删除(即替换为“空白”) find 返回的每个文件名的最后四个字符,即扩展名
.wav
或.ape
- 参数将每个文件名通过管道输入到
mac
命令中。- 讲述
-I MACFILE
参数替换每次出现的苹果电脑输入(文件名);这样我们就得到了具有适当扩展名的文件,而不是.wav.ape
,等等。
- 讲述
解码仅在当前文件夹内,并输出到自定义文件夹,例如:
find `pwd` -name *.ape -maxdepth 0 | sed 's/....$//g' \
| xargs -I MACFILE mac "MACFILE.ape" "/home/ryan/decodes/MACFILE.wav" -d
笔记:寻找是那些几乎无限的实用程序之一(请参阅
man find
)。有了正确的-exec
选项-printf
(甚至更多),寻找可能本身就足够了,而不需要sed和参数,我相信有人会指出这一点 :)。但我发现这更容易解释和理解。