想知道是否有人可以用正则表达式和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
Run Code Online (Sandbox Code Playgroud)
再次,任何帮助表示赞赏.
这可以仅使用find命令来完成.
find $TARGETDIR -regex ".*\\.$TARGETEXT" -type f -exec your_command {} \;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1008 次 |
| 最近记录: |