【发布时间】:2018-01-12 23:02:52
【问题描述】:
我有超过 1000 个文件夹,每个文件夹包含一个 .wav 文件和一个 .txt 文件 (example of the folders)。文本文件包含时间间隔,我需要根据每个文本文件给定的时间间隔将 .wav 文件修剪成剪辑(请注意,文本文件位于不同的文件夹中)。我从enter link description here得到了以下脚本
#!/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
但是,它是针对单个文件的,它只能用于当前目录中的文件。如何使其适用于子文件夹并进入循环?
【问题讨论】:
-
done是一个从未开始的循环的结束。试试shellcheck.net 找出最明显的错误。 -
感谢本杰明,shellcheck 非常有用,但您并没有真正回答我的问题..
-
done本身就是一个语法错误。您必须将其与while ...; do配对。看看BashFAQ/001。 -
对不起,我想我在原来的问题中漏掉了一行,我刚刚编辑了它。但是,我怎样才能使它适用于子文件夹..?