如何在 Mac 终端中使用 sox 修剪子文件夹中的声音文件?

王小龙

我有 1000 多个文件夹,每个文件夹包含一个 .wav 文件和一个 .txt 文件(文件夹示例)。文本文件包含时间间隔,我需要根据每个文本文件给出的时间间隔将 .wav 文件修剪成剪辑(请注意,文本文件位于不同的文件夹中)。我从这里输入链接描述中得到了以下脚本

#!/bin/bash
index=0
while read this; do
if [ $index -gt 0 ]; then
 sox sound.wav clip-$index.wav trim $start $this-$start
fi
((index+=1))
start=$this
done < times.txt

但是,它是针对单个文件的,并且只能用于当前目录中的文件。如何使其适用于子文件夹并进入循环?

林·杜拉特

基本上,您希望对所有子目录执行此循环。这意味着您需要遍历子目录:

#!/bin/bash
topdir=$(pwd)
find . -type d | while read dir ; do
    cd "$dir"
    if [  -f sound.wav -a -f times.txt ] ; then
        index=0
        while read this; do
            if [ $index -gt 0 ]; then
                sox sound.wav "clip-$index.wav" trim "$start" "$this-$start"
            fi
            ((index+=1))
            start="$this"
        done < times.txt
    fi
done

我假设你问题中的循环做了你想要它做的事情,我只是添加了一些引号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用终端复制文件夹中的特定文件

如何在Mac终端中使用SoX从文本文件中修剪特定时间的音频文件?

如何使用终端命令从文件夹中打开文件

如何在Mac OS X终端机中使用“拆分”将文件直接拆分到另一个目录?

如何在终端中使用avconv转换多个文件?

如何在python中使用终端命令写入文件?

在Mac中如何在不使用鼠标的情况下打开文件夹?

如何在Mac终端中控制TeamViewer?

尝试使用sox或ffmpeg将2声道声音文件转换为单声道时出错

通过Mac OS X中的终端安装“ SoX”(Sound eXchange)

如何在Mac OSX中使用zsh / ls命令在终端中首先列出目录?

如何从Mac上的终端打开文件夹?

如何在OS X终端中使用find命令搜索文件夹?

如何使用终端机转到Mac中的Documents文件夹

如何使用sox分析音频文件的片段?

如何在Mac终端中使用rm -r命令?

如何在Mac上使用终端添加文件夹的第二个所有者?

如何在Mac终端中为文件夹中的多个文件运行同一命令?

如何在Mac终端中一口气为一个文件夹中的多个文件运行命令?

如何按照图形窗口中显示的顺序打印mac终端中文件夹中的文件名?

如何使用SoX或ffmpeg提取声音文件的包络

如何在Mac中使用文件夹路径导航到文件夹?

如何在文件夹mac中CHMOD所有文件夹?

如何使用sox连续播放文件夹中的所有mp3

如何在终端中使用*显示所有.png文件

如何在 Mac 终端中只显示 $?

如何在终端 (Mac OS) 上打开名称中包含多个单词的文件夹

在子文件夹中使用 sox 批处理 wav 文件

在 Mac 终端中显示隐藏的文件和文件夹