对linux中相同存储库中的多个文件执行相同的命令

时间:2018-01-21 17:00:26

标签: linux shell

我想对linux中相同存储库中的几个文件执行以下命令:

../../../../../openSMILE-2.1.0/SMILExtract -C ../../../../../openSMILE-2.1.0/config/IS13_ComParE.conf -I inputfilename.wav -D outputfilename.csv

目录中有几个文件(名为1.wav,2.wav,3.wav),如果我执行

../../../../../openSMILE-2.1.0/SMILExtract -C ../../../../../openSMILE-2.1.0/config/IS13_ComParE.conf -nologfile 1 -noconsoleoutput 1 -I 1.wav -D 1.csv

输出1.csv。

如何通过在linux中执行一个命令来创建1.csv,2.csv,3.csv,.. (或者我必须制作.sh文件吗?)

1 个答案:

答案 0 :(得分:1)

将以下内容放到脚本中可能更简洁,但您也可以直接在bash命令行中输入:

#! /bin/bash
for file in *.wav ; do
    prefix=${file%.wav}  # Remove from the right.
    ../../../../../openSMILE-2.1.0/SMILExtract \
        -C ../../../../../openSMILE-2.1.0/config/IS13_ComParE.conf \
        -I "$file" -D "$prefix".csv
done