2013-03-11 1 views
0

나는 수백 가지의 대소 문자가 혼합 된 파일 이름 목록을 ~/script-filenames에 가지고 있으며, 현재 디렉토리에서 이들 파일 이름을 포함 할 수있는 수백 개의 텍스트 파일을 검색합니다. 현재bash를 사용하여 대소 문자가 일치하지 않는 텍스트 파일을 찾습니다

나는 다음이 명령을 사용하고 있습니다 :

  1. 모두를 반환하려면 일치에 관계없이 경우의 :

    xargs -0 -I @ -a ~/script-filenames grep -r @ 
    
:

xargs -0 -I @ -a ~/script-filenames grep -ri @ 
  • 모두 정확히 일치를 반환하려면

    하지만 어떻게 울부 짖는 지 d 대소 문자를 무시할 때 일치하는 문자열을 찾고 대소 문자가 일치 할 때 실패합니다.

    아마도 egrep과 regexp를 사용하는 방법이 있지만 어떻게해야할지 모르겠다.

    xargs -0 -I @ -a ~/script-filenames grep -ri @ >hitList.IgnoredCase 
    xargs -0 -I @ -a ~/script-filenames grep -r @ >hitlist.WithCase 
    
    diff -u hitList.IgnoredCase hitlist.WithCase|grep ^+ |cut -c 2- 
    

    은 diff 라인의 출력이 부정확 한 경우 만 라인이 포함됩니다 :

  • +0

    grep -r @'무엇을 grep 하시겠습니까? 아무것도? – Kent

    +0

    아니요, xargs는 @을 입력 파일의 토큰에 대한 대체 변수로 선언합니다. –

    +0

    예, 명령은 grep -r filename과 같습니다. 패턴은 어디에 있습니까? – Kent

    답변

    1

    문제에 대한 간단한 해결 방법은 사용 해제 DIFF 수 있습니다.

    +0

    diff를 사용하는 것에 대해 감사드립니다. 일단 필자가 필적 할만한 비교 가능한 데이터를 얻었 으면이 라인을 따라 뭔가 도움이되었습니다. –

    관련 문제