파일 이름의 FAIL 패턴에 따라 결정되는 외부 스크립트에서 사용하기 위해 현재 디렉터리에서 실패한 로그 목록을 가져오고 싶기 때문에 FAIL*을 사용하여 스크립트 파일과 열 절차를 제공했습니다. 그러나 모든 FAIL 파일은 압축된 파일과 압축되지 않은 파일의 두 가지 유형으로 제공됩니다. 압축되지 않은 파일만 열고 싶습니다.
find FAIL*을 연결할 수 있지만 *.gz/bz2/whatever가 존재하는 경우에는 연결할 수 없습니까?
답변1
다음 확장자를 사용하여 정규식이 있는지 테스트할 수 있습니다.
for file in *FAIL*; do [[ ! $file =~ .(bz2|gz) ]] && printf "%s\n" "$file"; done
필수 경고 삽입파싱되지 않음ls
...
답변2
명령 을 사용하는 경우 다음과 같이 find
확장자로 끝나는 파일을 생략할 수 있습니다 .gz
.
$ ls -l
total 0
-rw-rw-r--. 1 saml saml 0 Oct 15 22:42 FAIL
-rw-rw-r--. 1 saml saml 0 Oct 15 22:42 FAIL.gz
$ find . -name "*FAIL*" ! -name "*.gz"
./FAIL
ls
다음과 같이 출력을 필터링 할 수도 있습니다 .
$ ls *FAIL* | grep -v '.gz'
FAIL
ls
그러나 일반적으로 출력의 구조가 출력을 구문 분석하는 데 도움이 되지 않으므로 출력을 구문 분석하지 않는 것이 좋습니다 .