의 파일에 grep 2 패턴을 넣으려는 경우 Solaris UNIX.Solaris - grep (OR 기능 포함)
grep '패턴 1 또는 패턴 2'파일 이름입니다.
다음 명령이 작동하지 않습니다
grep 'pattern1\|pattern2' filename
이 명령에 어떤 문제가 있습니까?
참고 : 내가 나를 위해 좋은 일을 명령 솔라리스
의 파일에 grep 2 패턴을 넣으려는 경우 Solaris UNIX.Solaris - grep (OR 기능 포함)
grep '패턴 1 또는 패턴 2'파일 이름입니다.
다음 명령이 작동하지 않습니다
grep 'pattern1\|pattern2' filename
이 명령에 어떤 문제가 있습니까?
참고 : 내가 나를 위해 좋은 일을 명령 솔라리스
에입니다. 플랫폼 및 사용중인 정규 표현식 및 파일 내용과 같은 추가 정보를 추가하십시오 (문제를 재현하는 가장 작은 예제로 최소화하십시오). (귀하의 게시물에 댓글을 달았지만 평판이 충분하지 않습니다.)
정확해야합니다. 'pattern1 \ | pattern2'와 'pattern1 \ | pattern2'의 적절한 공백을 추가했는지 확인하십시오.
사례에 문제가있는 것이 아니라고 확신하십니까? -i 스위치를 시도하십시오.
'\ |'Solaris에서 작동하지 않습니다 ... – jahroy
이는 pattern1과 pattern2의 정의에 따라 다릅니다. 단어가 맞다면 제대로 작동 할 것입니다. 그렇지 않으면 다음을 필요로합니다.
grep '\(pattern1\)\|\(pattern2\)'
패턴은 단지 단어이며 알 수없는 이스케이프 시퀀스 '\ |' – user742004
Solaris에서'\ |'가 작동하지 않습니다 ... – jahroy
어떤 운영 체제를 사용하고 있습니까?
GNU grep이있는 시스템에서는 작동하지만 BSD, Solaris 등에서는 \|
이 지원되지 않습니다.
egrep
또는 grep -E
으로 시도해보십시오.
egrep 'pattern1|pattern2'
egrep이 제대로 작동합니다. 감사 – user742004
당신이 POSIX 기능 (예 : 리눅스와 같은 동작을) 원하는 경우에 당신은 경로의 시작 부분에 POSIX 2 호환 바이너리를 넣을 수 있습니다 :
$ echo $PATH
/usr/xpg4/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:[...]
이도는/usr/xpg6을 인 POSIX 1 호환 가능합니다.
/usr/bin: SVID/XPG3
/usr/xpg4/bin: POSIX.2/POSIX.2a/SUS/SUSv2/XPG4
/usr/xpg6/bin: POSIX.1-2001/SUSv3
fgrep
이용한 비전있어서 솔라리스 10 일 (즉, 고정 스트링) ...
되도록 개행 문자로 구분 패턴 아직 인용 패턴리스트를 제공 한 단어로 쉘에 의해 해석 : -
fgrep 'pattern1
pattern2' filename
이 방법은 작동 grep
, fgrep
및 /usr/xpg4/bin
에서 egrep
, 파이프로 구분 된 ERE 비록 어떤에 대한은 때로는 가장 까다 롭습니다.
셸이 기록 편집을 허용하는 경우 문자열에 임의의 개행 문자를 삽입 할 수 있습니다. 예 : bash
C-v C-j
이맥스 모드 또는 vi 명령 모드에서 발생합니다.
패턴은 단순히 단어이며 유닉스 솔라리스 머신에서 작동합니다. – user742004