我需要一个在Linux终端中使用的bash脚本,它应该类似于:
#!/bin/bash
for textgrid_file in ./*.TextGrid and for wav_file in ./*.wav
do
praat --run pitch.praat "$textgrid_file" "$wav_file" >> output.txt
done
即。我需要遍历带有扩展名.textgrid
和.wav
的成对文件,因为在我的Praat脚本中pitch.praat
我有两个参数要通过。如何通过bash脚本实现它?
答案 0 :(得分:2)
您可以使用数组支持迭代第一个glob模式并使用数组中的第二个文件:
waves=(*.wav)
k=0
for textgrid_file in *.TextGrid; do
praat --run pitch.praat "$textgrid_file" "${waves[k++]}" >> output.txt
done
答案 1 :(得分:1)
如果我理解你,两个文件名共享相同的基本名称。
#!/bin/bash
for textgrid_file in ./*.TextGrid
do
name=$(basename $textgrid_file .TextGrid)
wfile="$name.wav"
praat --run pitch.praat "$textgrid_file" "$wfile" >> output.txt
done
使用basename提取公共基本名称。