次の名前の複数のファイルを含む「サイト」フォルダがあります。
bu.my-url.com
dud.myurl.com
[must-be-indentical_string].myurl.com
- など
/themes/amu_[must-be-indentical_string]
各サイトフォルダのサイトフォルダ名と同じであることを確認したいと思います。
/sites/[must-be-indentical_string].myurl.com/themes/amu_[must-be-indentical_string]
そのような順序がありますか?
答え1
次のことができます。
#! /bin/sh -
cd /path/to/sites || exit
ret=0
for file in */themes/amu_*; do
[ -e "$file" ] || continue
dir=${file%%/*}
theme=${file##*/amu_}
case $dir in
("$theme".*) ;; # OK
(*) printf>&2 '%s\n' "Mismatch: $file"
ret=1;;
esac
done
exit "$ret"
GNUの場合は、find
以下も参照してください。
cd /path/to/sites &&
find . -mindepth 3 -maxdepth 3 -regextype posix-basic \
-path './*/themes/amu_*' \
! -regex '\./\(.*\)\..*/themes/amu_\1' \
-fprintf /dev/stderr 'Mismatch: %P\n'