【问题标题】:I need some slightly basic BASH help - find + execdir + sox我需要一些基本的 BASH 帮助 - find + execdir + sox
【发布时间】:2017-06-26 04:18:46
【问题描述】:

好的,你好。我有一些在命令行上使用的脚本来从 .wav 和 .aif 文件中翻录 mp3。最近我一直在玩这个只需要单声道 wav 文件的采样器。等等——我保证这是一个编程问题。 我想运行一个命令将目录中的所有 wav 文件拆分为具有不同文件名的单声道文件。 因此,例如 Drummerrolleasy.wav,然后 DrummerrolleasyL.wav 将与原始立体声 wav 的左单声道拆分位于同一目录中。 我会确保当命令运行时,目录中只有立体声 wav 文件。 我有这个命令:

find . -name "*.wav" -execdir echo $1    {} \;

按预期工作,并为我一一提供文件的名称,然后我想将其放入对 sox 的调用中。 这个:

find . -type f -name “*.wav” -exec sox {} "$1" L"$1"  \;

不起作用(运行但什么也不做),而且我没有找到任何特别说明如何做到这一点的东西。我可能需要生成一个新的外壳,但这也不起作用,因为外壳就在那里:

find . -name "*.wav" -execdir sh -c 'sox "{}" "$1" “L””$1"’ \;

如果我必须自己解决这个问题,那也可以,当我到达那里时,我会更新,但如果有人想指出我正确的方向,我将非常感激。

【问题讨论】:

  • 另外,对 sox 的直接调用如下所示:sox Drummersurvive.wav DrummersurviveL.wav remix 1 - LEFT 通道的源名称、副本名称、混音和 1。
  • 这也不起作用:find 。 -type f -name “*.wav” -execdir sox {} "$1" L"$1" remix 1 \;

标签: bash shell audio mono sox


【解决方案1】:

是这样的:

for file in *.wav; do sox $file L$file remix 1; done

感谢Mix .L and .R files into a stereo file using SOX in bulk

为我节省了很多时间。 BASH 规则。

【讨论】:

    猜你喜欢
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 2010-10-23
    相关资源
    最近更新 更多