我有一个 C 程序 fextract,它以 wavfile 作为输入并以某种 fcc 格式提供输出。语法类似于“fextract file.wav file.fcc”。现在我有 75000 个 wav 文件需要转换成 fcc 格式。为了加快这个过程,我打算使用我 i7 机器的所有内核。首先,我将所有输入和输出路径保存在一个文件中,我将其称为 scp 文件,例如:/mnt/disk1/file1.wav /mnt/disk2/file1.fcc /mnt/disk1/file2.wav /mnt/disk2 /file2.fcc 等等
现在使用以下 shell 脚本,我将 scp 文件分成 8 个文件并存储在临时目录中
mkdir $tmpDir
cd $tmpDir
nCores=`cat /proc/cpuinfo | grep processor | wc -l`
nLines=`cat $scpFile|wc -l`
split -l $((nLines/nCores + 1)) $scpFile
现在我的临时文件有八个子文件。我如何评估它们以使用多个内核运行程序 fextract
for i in `ls`
do
fextract &i
done
需要这样的东西。请帮我解决这个问题