다음과 같은 이름의 여러 파일이 포함된 "사이트" 폴더가 있습니다.
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'