invers bash v4 셸 확장을 처리 할 수있는 방법이 있습니까? 모든 파일을 와일드 카드처럼 다루지 않습니까? 나는 rm
이 경우 형식 'Folder-???'
아닌 모든 파일이 필요가 있는지 궁금 해서요 짧은 (예. 내장) 방식으로 다음bash : 반전 (즉, NOT) 쉘 와일드 카드 확장?
for file in *
do
[[ $i =~ \Folder-...\ ]] && rm '$i'
done
루프를하고.
invers bash v4 셸 확장을 처리 할 수있는 방법이 있습니까? 모든 파일을 와일드 카드처럼 다루지 않습니까? 나는 rm
이 경우 형식 'Folder-???'
아닌 모든 파일이 필요가 있는지 궁금 해서요 짧은 (예. 내장) 방식으로 다음bash : 반전 (즉, NOT) 쉘 와일드 카드 확장?
for file in *
do
[[ $i =~ \Folder-...\ ]] && rm '$i'
done
루프를하고.
shopt -s extglob
rm -- !(Folder-???)
+1 : 그 사실을 몰랐습니다. –
@Dimitre이 떠들썩한 파티를위한 right answer을 가지고 ... 그냥 bash는 학습 호기심
(예는 ... BTW, 작동하지 않습니다).
for file in *; do
case "$file" in
Folder-???) : ;;
*) do stuff here ;;
esac
done
다른 배시 용액하면 'find
반전 가능하면 find
으로 확인되어 경우 [[ ... ]]
(documentation)
for file in *; do
if [[ "$file" != Folder-??? ]]; then
do stuff here
fi
done
안녕하세요 @ 글렌,'case [...] '및'[[...]] 내부에 _varname_ 형식으로 쉘 단어/필드 분할을 수행하지 않으므로 식별자를 추가 할 필요가 없습니다. (물론이 맥락에서의 인용은 해롭지 않습니다.) –
안에 패턴 매칭 연산자를 사용하는 것이다 : 휴대용 용액 case
사용하는 s의 술어는 -not
입니다.
find -not -name 'Folder-???' -delete
에서와 마찬가지로
(이 글로브 매칭 쉘 다른 차이들 사이에서 반복적으로 일치주의,하지만 난 당신이 충분히 find
을 알고 있다고 가정)
당신이 할 수 없어 두려워하고 있습니다 대신 정규식을 사용하십시오. – TMS
가능한 복제본 [어떻게 유닉스/리눅스 셸에서 패턴 매칭을 할 때 inverse 또는 negative 와일드 카드를 사용할 수 있습니까?] (http://stackoverflow.com/questions/216995/how-can-i-use-inverse-or-negative -wildcards-when-unix-linu와 일치하는 패턴) – Johan
@Tomas false; extglob은 되돌릴 수 있습니다. –