파이프 grep하는 방법 |


14

파이프 문자 |또는 문자를 포함하는 줄에 grep하는 방법 >:

files content:
|this is test
where is >
this is none

이제 grep 명령을 사용해야하는 것은

grep -iE "<some expression>" file_name

산출:

|this is test
where is >

답변:


10

표준 grep구문으로 :

grep '[>|]'

또는

grep -e '>' -e '|'

또는

grep '>
|'

또는

grep -E '>|\|'

6

GNU grep을 사용하는 경우 또는 연산자 ( |)를 사용 하여이 작업을 수행 할 수 있습니다 \. 따라서 파이프 또는보다 큼 기호를 포함하는 행을 찾으려면 문자 그대로 또는 연산자에 포함하십시오.

grep '|\|>' infile

산출:

|this is test
where is >

4
\|표준되지 BRE는 GNU와 함께 작동하지만 운영자는, grep은 IS grep리눅스 커널 중심으로 대부분의 운영 체제에서 발견.
Stéphane Chazelas

@ StephaneChazelas : 이것을 지적 해 주셔서 감사합니다. 알지 못했습니다. 나는 텍스트를 수정했다.
Thor

1
예, 교대 연산자는 BRE에 ERE를 실제로 추가 한 유일한 요소이며 나머지는 +, 및에 ?대한 구문 설탕입니다 . (반면, ERE 는 BRE 전용 기능인 느슨한 참조 ( )를 느슨하게 합니다)\{1,\}\{0,1\}\(.\)\1
Stéphane Chazelas

1

원하는 문자 중 하나를 일치시키기 위해 대괄호 표현식 사용 :

grep "[|>]" infile

산출:

|this is test
where is >

3
필요가 없습니다에 대한 하나 -i또는 -E여기에.
Stéphane Chazelas

사실입니다.
zagrimsan

0

이를 수행하는 올바른 방법은 POSIX에 의해 지정된 -e 플래그를 사용하는 것입니다. 예 :

grep -e '>\||' infile

1
grep -e '>' -e '|' infile작동합니다.
ott--

2
-ePOSIX에 의해 지정되었지만 여기서는 유용하지 않습니다. \|POSIX에 의해 지정되지 않았습니다.
Stéphane Chazelas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.