2012-11-27 2 views
1

주어진 경로에서 주어진 패턴과 이름이 일치하는 파일이 있는지 확인하고 싶습니다.리눅스 단항 연산자가 패턴 이름이있는 파일의 종료를 확인합니다

assert=1 
myPatternpath=$HOME/folderName/abcMYPATTERN.xml 
if [ ! -f $myPatternpath ] 
then assert=0 
fi 
echo $assert; 

MYPATTERN은 임의의 문자 여야합니다.

편집 :

MYPATTERN 예를 들어 수 있습니다 : *

감사

+0

몇 가지 패턴 예제를 제공 할 수 있습니까? 귀하의 질문에, 그것은 정상적인 파일처럼 보입니다. 정규식을 말하고 싶습니까? – Miquel

+0

예, *와 같은 정규식입니다. 그런 식으로 시도했지만 작동하지 않습니다. –

+0

'찾기. -regex $ myPatternpath'? – janisz

답변

2

는 그래서, 당신이 원하는 정규식,하지만 와일드 카드 아니다.

for file in $HOME/folderName/*.xml; do 
    if [ ! -f $file ] then assert=0; fi 
done 
echo $assert; 

그러나 물론, 당신이 파일을 겪고있다 beacuse는 -f가 암시 :이 경우, 당신은 뭔가를 할 수 있습니다. 이것은 폴더인지, 읽을 수 있는지 여부 등을 확인하는 데 여전히 유용 할 것입니다 ...