파일에서 g 또는 0에서 9 사이의 숫자로 시작하는 모든 행을 찾습니다.

파일에서 g 또는 0에서 9 사이의 숫자로 시작하는 모든 행을 찾습니다.

파일에서 g 또는 0에서 9 사이의 숫자로 시작하는 모든 줄을 어떻게 찾나요?

누구든지 명령줄을 도와줄 수 있나요? 시도해 보았는데 g로 시작하면 어떻게 해야 하는지 알지만 g와 0~9로 시작하면 어떻게 해야 할지 모르겠습니다.

답변1

이것은 정규 표현식과 함께 grep을 매우 간단하게 사용하는 것입니다. 이렇게 하면 됩니다:

grep -E '^[g0-9]' file.txt

어떤 부분에 도움이 필요한지 잘 모르겠지만 man grep정규식을 읽고 이해하는 것이 좋습니다.

다음을 사용 하여 -E"실제" 정규 표현식을 활성화 해야 합니다. grep(자세한 내용은 "shell globbing"을 검색해 보세요.)

추신. 이 특정 검색의 경우 -E부작용 없이 무시할 수 있습니다. 당신이 아니라면 놓치지 마세요알다무시할 수 있습니다. (댓글에서 볼 수 있듯이 일부 사람들이 이 문제에 매우 관심이 있기 때문에 이것을 언급하는 것뿐입니다.)

답변2

이와 같은 도구는 부울 OR( ) grep을 이해하는 정규식을 사용합니다 .|

  • 기본 정규식

    grep '^g\|^[0-9]' file
    
  • 확장 정규식

    grep -E '^(g|[0-9])' file
    
  • Perl 호환 정규식

    grep -P '^(g|\d)' file
    

또는 다른 도구를 사용할 수 있습니다.

  • sed

    sed -n '/^g/p;/^[0-9]/p' file
    

    또는

    sed -En '/^(g|[0-9])/p' file
    
  • awk

    awk '/^g|[0-9]/' file
    
  • perl

    perl -ne 'print if /^(g|\d)/' file
    

관련 정보