답변:
grep -v
또는
grep --invert-match
다음을 사용하여 동일한 작업을 수행 할 수도 있습니다 find
.
find . -type f \( -iname "*" ! -iname ".exe" ! -iname ".html"\)
자세한 내용은 여기를 참조하십시오 .
find
명령은이 XY 문제에 대한 가장 의미있는 솔루션입니다. 결합 ls
하고 grep
이 목적을 위해하는 최고의 해키 보인다. 이것이 정답입니다. (+1)
grep "subscription" | grep -v "spec"
-v
/--invert-match
필요의 리턴 코드가 있는지 플립하지 않습니다grep
성공적인 실행을 나타내고, 대신 다른 일치하지 않을 선을 일치합니다. 리턴 코드를 반전시키려는 경우 (즉, 모든 행이 하나 이상의 패턴이 아닌 패턴과 일치하지 않으면 성공)를 사용해야합니다! grep
. 조건부 표현식에서 사용됩니다 (예 :)if ! ls | grep -qE ".(\.exe)$"; then echo No .exe files in $(pwd); fi
.