誰かが正規表現とbashで私を助けてくれるかどうか疑問に思っていました.
特定の拡張子 (この場合は mpg、mpeg、avi、および mkv) のみを持つファイルに対して一連のコマンドを実行しようとしています。
ここで実際に解決策を見つけましたが、うまくいかないようです。誰かが理由を教えてくれれば、私はそれを感謝します。
#!/bin/bash
# Configuration
TARGETDIR="$1"
TARGETEXT="(mpg|mpeg|avi|mkv)"
for d in `find $1 -type d`
do
echo "Searching directory: $d"
for f in "$d"/*
do
if [ -d "${f}" ];
then
# File is a directory, do not perform
echo "$f is a directory, not performing ..."
elif [ -f "${f}" ];
then
filename=$(basename "$f")
extension="${filename##*.}"
if [ "$extension" == "$TARGETEXT" ];
then
echo "Match"
else
echo "Mismatch - $f - $extension"
fi
fi
done
done
繰り返しますが、どんな支援も大歓迎です。