2011-09-07 2 views
0

줄에 '-'문자를 찾으려고하는데이 문자는 범위를 지정하는 데 사용됩니다. '-'문자를 포함하는 sed 패턴의 예를 얻을 수 있습니까?sed 패턴에 "-"를 지정하십시오.

또한 공간과 탭을 제외한 모든 문자를 포함하는 패턴을 사용할 수 있다면 더 빠를 것입니다.

답변

6

'-'에는 대괄호 사이의 범위를 지정합니다. 예를 들어

이 :

sed -n '/-/p' 

을 인쇄 '-' 문자를 포함하는 모든 라인. '-'을 대괄호로 묶으려면 바로 뒤에 넣거나 ] 앞에 넣으십시오. 이 :

sed -n '/[-x]/p' 

인쇄 중 하나 '-' 또는 'x'을 포함하는 모든 행을.

이 패턴 : 공백과 탭 (당신이하지 "<tab>"리터럴 탭 문자를 필요가 있습니다) 이외의 모든 문자 다른 [^ <tab>]

일치.

+0

감사합니다. 다시 한번 유닉스는 극단적 인 도움이됩니다. 이렇게하면 코드가 확실히 단축됩니다. – sj755

2

당신이 대시를 찾을 문자 클래스 밖에서 그것을 지정하려면 :

/[-a-z]/ 
/[a-z-]/ 
: 문자 클래스에 포함하려면

/-/ 

, 그것을 첫 번째 또는 마지막 문자를 만들

당신이 후, 빈 또는 탭 (또는 줄 바꿈)을 제외하고 아무것도 찾을하려면 다음

, 내가 추가 촉진
/[^ \t]/ 

, '\t'은 리터럴 탭 문자이고 백 슬래시 - t는 아닙니다.