【发布时间】:2021-02-01 20:02:59
【问题描述】:
我有这个脚本,用于将目录中的所有 wav 文件转换为 44100 hz 的 16 位。但是,它也会转换已经具有这些属性的文件。如何过滤文件以便只转换需要转换的文件?
我正在使用 ubuntu 开发 Win 10。
#!/bin/sh
for i in *.WAV;
do
name=`echo "$i" | cut -d'.' -f1`
echo "$name"
ffmpeg -i -f "$i" -acodec pcm_s16le -ar 44100 "${name}.wav";
done
编辑:是否也可以对子目录中的文件进行此循环?
【问题讨论】:
-
使用
bash(sh通常不是bash):shopt -s globstar; for i in **/*.wav; do echo "$i"; done -
我是编写 shell 脚本的新手。我正在使用 sh myscript.sh 运行我的脚本。所以也许我使用的是 sh 而不是 bash?那里也行吗?
-
您的代码也适用于
bash。
标签: bash shell ffmpeg windows-subsystem-for-linux