我需要创建一个shell脚本,用于创建特定目录中文件的缩略图,但不包括已创建的文件。 原始文件使用五位数字.jpg命名。例如。 13993.jpg 。缩略图名为 13993_thumb.jpg 。 下面的代码是我开始使用的,我无法找到匹配的模式... 有什么建议吗?
#!/bin/bash
for i in *.jpg
do
echo "Prcoessing image $i ..."
[[ $i == "0-9_thumb.jpg"* ]] && continue
# /usr/bin/convert -thumbnail 200 $i thumb.$i
done
答案 0 :(得分:1)
更好地利用工具和管道的力量:
$ ls *.jpg
11223.jpg 12345_thumb.jpg 42424.jpg 99999_thumb.jpg
$ ls *.jpg | grep -v '^[0-9]\{5\}_thumb\.jpg' | while read f; do echo convert $f ... ; done
convert 11223.jpg ...
convert 42424.jpg ...
您案例中的正则表达式:
[[ "12345_thumb.jpg" =~ ^[0-9]{5}_thumb\.jpg$ ]]
答案 1 :(得分:0)
您没有使用正确的glob模式。您需要使用:
[[ "$i" == [0-9]*"_thumb.jpg" ]] && continue
[0-9]*
将匹配1位或更多位数