2012-06-07 3 views
3
grep -w uses punctuations and whitespaces as delimiters. 

공백을 단어의 구분 기호로만 사용하도록 설정하려면 어떻게해야합니까?구분 기호로 공백 만있는 grep -w

+0

시도한 코드 섹션을 게시하여 질문을 개선하십시오. [올바른 형식으로 작성하십시오. ] (http://stackoverflow.com/editing-help). 또한 테스트 할 코퍼스로 사용중인 샘플을 게시하십시오. –

+0

질문은 매우 간단하며 코드를 붙여 넣어야합니다. 그것은 이론적 인 질문입니다. William Pursell은 그것을 이해하고 정확하게 대답했다. – user1356163

답변

3

과 일치 시키려면 공백 만 입력하십시오. grep -w foogrep " foo "과 같습니다. 줄 끝이나 탭과 일치 시키려면 다음을 수행하십시오.

2

grep -w의 작동 방식을 변경할 수 없습니다. 그러나 X 문자 (예 : tr 또는 sed)를 사용하여 구두점을 바꿀 수 있습니다. 그런 다음 grep -w을 사용하면 트릭을 수행 할 수 있습니다.

2

--word-regexp 플래그는 유용하지만 제한적입니다. grep man 페이지의 내용 :

-w, --word-regexp 
      Select only those lines containing matches that form whole 
      words. The test is that the matching substring must either be 
      at the beginning of the line, or preceded by a non-word 
      constituent character. Similarly, it must be either at the end 
      of the line or followed by a non-word constituent character. 
      Word-constituent characters are letters, digits, and the 
      underscore. 

사용자 정의 필드 분리 기호를 사용하려면 awk가 더 적합 할 수 있습니다. 또는 egrep 또는 grep --extended-regexp으로 확장 정규 표현식을 작성하여 검색 패턴을보다 잘 제어 할 수 있습니다.

+0

awk로 어떻게 할 수 있습니까? 나는 한 줄에있는 특정 단어를 찾고 싶다. 거기에 있다면 나는 그 라인을 무시해야한다고 생각한다. 그렇지 않다면 – user1356163

+0

@ganducoder 질문을 현재 작업중인 코드의 관련 섹션으로 업데이트하십시오. 사람들은 기꺼이 도와 주겠지 만 그것을 쓰지는 않을 것입니다. 또한 테스트 할 코퍼스로 사용중인 샘플을 포함하십시오. –

관련 문제