想知道是否有人可以用正則表達式和bash來幫助我。用正則表達式確定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
再次,任何幫助表示讚賞。
啊,哈!這工作出色。我早些時候嘗試過,但在'$ TARGETEXT'上使用了引號。不知道刪除它會起作用。謝謝一堆。 – Battleroid