想知道是否有人可以用正则表达式和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