'.'라인(점)을 기준으로 grep하는 방법은 무엇입니까? [복사]

'.'라인(점)을 기준으로 grep하는 방법은 무엇입니까? [복사]

file다음이 있다고 가정해 보겠습니다 .

123
251
7.8
951

이제 내가 시도한 grep라인을 원합니다 ..

$ cat file | grep .
123
251
7.8
951

$ cat file | grep '.'
123
251
7.8
951

하지만 예상대로 작동하지 않습니다. 그렇다면 이를 grep기반으로 문자열화를 어떻게 수행 합니까 .?

추가 정보:

$ grep --version | line
grep (GNU grep) 2.16

답변1

당신이 얻는 결과는 다음과 같습니다..단일 문자와 일치

  • ~에서맨페이지>정규식:

       기본 빌딩 블록은 단일 문자와 일치하는 정규식입니다. 모든 문자와 숫자를 포함한 대부분의 문자는 자신과 일치하는 정규식입니다. 특별한 의미가 있는 메타 문자는 앞에 백슬래시를 붙여 인용할 수 있습니다.

       기간. 단일 문자와 일치합니다.

    그럼 .탈출해야지\

    $ cat file | grep '\.'
    7.8
    

    이 값은 \.따옴표로 묶어야 합니다 '.

  • 또 다른 방법은-F, --fixed-strings옵션은 grep또는 와 함께 사용됩니다 fgrep.

     -F, --fixed-strings
              Interpret  PATTERN  as  a  list of fixed strings, separated by newlines, any of which is to be matched.
    

    예:

    $ cat file | grep -F .
    7.8
    

    $ cat file | fgrep .
    7.8
    
  • [또 다른 해결 방법은 대괄호 표현식을 사용하여 일치시킬 문자열을 및 안에 묶는 것입니다 ].

    $ cat file | grep '[.]'
    7.8
    

관련 정보