나는 이것이 트릭을 수행할 것이라고 생각합니다.
find src -type f -regextype egrep -regex '.*(?<!\.d)\.ts'
하지만 아무것도 일치하지 않는 것 같습니다.
제 생각에는저것작동해야 하지만 이 "egrep" 스타일은 올바르게 이스케이프 처리하지 않는 한 부정적인 역참조를 지원하지 않는 것 같습니다.
참고로,
% find src -type f
src/code-frame.d.ts # <-- I want to filter this out
src/foo.ts
src/index.ts
.d.ts
검색 결과에서 파일을 필터링하는 또 다른 빠른 방법이 있습니까?
% find --version
find (GNU findutils) 4.7.0-git
답변1
구문이 지원되지 않는 것 같습니다 egrep
(귀하의 표현식은 Perl 호환 정규 표현식입니다). 그러나 예제에서는 정규식을 사용할 필요가 없으며 여러 -name
테스트를 수행하고 !
필요에 따라 부정을 적용하면 됩니다.
find src -type f -name '*.ts' ! -name '*.d.ts'
답변2
파일 이름만 필터링하고 원하지 않는 파일에 대한 테스트를 무효화하여 원하는 결과를 얻을 수 있습니다.
find src -type f -name \*.ts ! -name \*.d.ts
답변3
원치 않는 문자열을 필터링하는 간단한(아마도 덜 효율적인) 방법입니다.
find -name "*.ts" | egrep -v "\.d\.ts$"