私は絵が900x900ピクセルの解像度を持ち、ファイル名が、私はこれを行うにしようとしています何_thumbまたは_vバッシュスクリプトIF条件
を含むことを許可されていないかどうかを確認する必要があります行:
画像が900x900ピクセルではなく、_vまたは_thumb =が含まれていない場合、ファイル拡張子の前にファイル名の末尾に_thumbを追加します。
ラインそれはすべてについてです:
if file $picture | grep -q 900x900 && ! file $picture | grep -q _thumb && ! file $picture | grep -q _v;
スクリプト:
#Change to current .sh directory
cd -P -- "$(dirname -- "$0")"
for picture in */*/Templates/*.jpg
do
filename=${picture##*/}
filename1=$(echo "$filename" |sed 's/.\{4\}$//')
parent_dir="$(dirname -- "$(/usr/local/bin/realpath "$picture")")"
#Colors
red=`tput setaf 1`
green=`tput setaf 2`
magenta=`tput setaf 5`
reset=`tput sgr0`
if file $picture | grep -q 900x900 && ! file $picture | grep -q _thumb && ! file $picture | grep -q _v;
then
mv -v "$picture" "$parent_dir/"$filename1"_thumb.jpg"
echo "${green} [PASS] $filename1 Thumbnail 900x900 found and renamed ${reset}"
else
echo "${magenta} [WARNUNG] $filename1 contains _thumb already or is a _v picture or isn't 900x900 pixels ${reset}"
fi
問題は、900x900であっても、キーワードを含んでいないにもかかわらず画像が認識されないことです。 ありがとうございます。 –
は、http://www.shellcheck.net/ ...を使用することを提案しています。たとえば、変数を引用してください。 grep -q '900x900''を残りの条件なしに実行し、動作するかどうかを確認します。 – Sundeep