중복된 줄을 반복하지 않고 특정 문자열과 일치하는 줄을 인쇄하는 줄을 작성하고 싶다고 가정해 보겠습니다. 현재 디렉터리의 파일에서 해당 문자열을 검색하고 싶습니다.
grep mystring ***What to put here?** | sort | uniq
현재 디렉토리 파일을 모두 검색하는 방법은 무엇입니까?
답변1
find . ! -name . -prune -type f -exec cat {} + |
grep mystring |
LC_ALL=C sort -u
또는:
find . ! -name . -prune -type f -exec cat {} + | awk '
/mystring/ && !seen[$0]++'
GNU 사용 grep
:
LC_ALL=C grep -hr --exclude-dir='?*' mystring | LC_ALL=C sort -u
또는 zsh
GNU를 사용하면 다음과 같습니다 grep
.
grep -h mystring ./*(D.) | LC_ALL=C sort -u
하위 디렉터리에 있는 파일을 재귀적으로 검색할 수도 있습니다.
find . -type f -exec cat {} + |
grep mystring |
LC_ALL=C sort -u
또는:
find . -type f -exec cat {} + | awk '
/mystring/ && !seen[$0]++'
GNU 사용 grep
:
grep -hr mystring | LC_ALL=C sort -u
이러한 모든 솔루션은 숨겨진 파일(및 숨겨진 디렉터리의 파일)도 확인하지만 비정규 파일은 확인하지 않으며 심볼릭 링크를 따르지 않습니다(일부 이전 버전의 GNU를 사용하지 않는 한 grep
) -r
.