2014-11-18 8 views
0

키워드 "세부 사항"의 첫 등장 후 DOMAIN \ USERNAME 형식으로 사용자 이름을 입력하려고 시도합니다. 다음은 찾고있는 텍스트의 좋은 샘플입니다. 을 통하여.키워드 뒤에 사용자 이름 일치

출처 : 제품 | 액션 : ADDUSER |
관리자 : domain \ admin | 세부 정보 : 알파 스낵 식품 : 그룹에 사용자 도메인 \ fuser 추가 시청자 | 난 단지 "도메인 \ 퓨저"

내가 (\bdomain\\.)\w+를 사용하여 시도를 반환 할 것이 예에서

는 그러나 이것은 "도메인 \ 관리자"와 "niners \ 퓨저"또한

내가 모두 반환 (?<=\buser\s)(\w+)을 사용했지만 도메인의 두 번째 인스턴스 만 반환했습니다.

그래서 나는 여기에 가까워지고있는 것처럼 느껴지지만 약간의 도움을 사용할 수 있습니다.

감사합니다. 사용

답변

0

:

$ perl -lne '/Added user (domain\\fuser) to the group/ and print $1' file 

또는

$ perl -lne '/Added user (\Qdomain\fuser\E) to the group/ and print $1' file 

는 출력 :

domain\fuser 
+0

아직 펄을 한 번도 들여다 보지 않았지만 매우 단순 해 보입니다. 감사! – bruin51

0

Details:.+(domain\\[\w]+)

이는 "세부 사항 :"발견 텍스트, fo를 찾습니다 모든 문자를 도메인 \까지 올린 다음 도메인으로 사용자 이름을 가져옵니다.

1

두 번째 시도를 변경하여 백 슬래시 문자를 허용 할 수 있습니다.

(?<=\buser\s)[\w\\]+ 

또는 공백이 아닌 문자와 일치하는 \S을 사용할 수 있습니다.

(?<=\buser\s)\S+ 
+0

이것은 내 것보다 더 예뻐요. :-) – mts7

+0

이것은 내가 가진 유스 케이스의 트릭을 만들었습니다. \ S에 대한 설명 주셔서 감사합니다. 나에게 의미가 있습니다. – bruin51