ksh
쉘 스크립트에서 파일 이름 문자열과 파일 마스크를 비교 하고 싶습니다 . 문법을 고쳐주실 수 있나요?
if [ "NPER20200422TEST.PTN" = "NPER*.PTN" ]
then
echo "File matched"
else
echo "File not matched"
fi
내 파일 문자열을 주어진 파일 마스크와 일치시키고 싶습니다.
답변1
답변2
Bourne과 유사한 셸인 include 에서 ksh
이 구성은 다음과 같은 case
용도로 사용됩니다.
case NPER20200422TEST.PTN in
(NPER*.PTN) echo "File matched";;
(*) echo "File not matched";;
esac
Bourne 쉘(많은 사람들이 계속 혼동하고 있지만 오늘날 더 이상 사용되지 않는 역사적인 쉘)에서는 s를 sh
생략해야 합니다 . (
의 표준(POSIX) 구현에서는 or 의 사용이 허용됩니다 (*)
.*)
sh
답변3
an을 사용하여 명세서를 인쇄 echo
하고 다음으로 파이프할 수 있습니다 grep
.
if echo NPER20200422TEST.PTN | grep -q "NPER.*PTN"
then
echo "File matched"
else
echo "File not matched"
fi
grep -q
출력을 생성하지 않습니다