2011-01-06 5 views
0

말하자면, 특정 레이블을 검색하고 값을 추출하는 등 처리해야하는 텍스트 파일 모음이 있습니다. 문제를 해결하는 일반적인 방법은 무엇입니까?텍스트 파일 수집에서 특정 값을 추출하는 방법

나는 또한이 읽기 : "Retrieve Variable Values from Python"를하지만 내가 직면하는 경우 일부에 적용 할 수없는 것 상관없이 난 그냥 문제를 해결하기위한 가장 적절한 방법을 알고 싶어

(같은 tab 대신 : 사용됩니다) 사용 된 언어. 내가/액세스 할 수 Backup Operators의 값을 검색하고 대가로 COMMERCE/cabackup & COMMSVR21/sys5erv1c3을 얻고 싶은

Name: Backup Operators SID: S-1-5-32-551 Caption: COMMSVR21\Backup Operators Description: Backup Operators can override security restrictions for the sole purpose of backing up or restoring files Domain: COMMSVR21 
COMMERCE/cabackup 
COMMSVR21/sys5erv1c3 

:

내가 뭔가를 말해봐.

어떻게 할 수 있습니까?

내가 생각한 것은 전체 텍스트 파일, 정규 표현식 검색 및 아마도 if else 문을 읽는 것입니다. 이게 효과가 있니? 아니면 아마 일부 배열로 텍스트 파일을 구문 분석하고 그것을 검색 할 수 있습니까? 나는 잘 모르겠다. 또 다른 예에서와 마찬가지로

말 :

 GPO: xxx & yyy Servers 
      Policy:   MaximumPasswordAge 
      Computer Setting: 45 
당신이 Policy = MaximumPasswordAge의 텍스트 파일을 확인하고 값 45을 반환하는 방법

?

감사합니다.

P/S - 난 그냥 아무 스포일러 태그가 없다는 것을 깨달았다 - 나는 (그래서 즉석에서 그것을 따기, 영 지식) 또는 Java

쪽/s의 파이썬에서이 작업을 수행 할 수 있습니다. Hmm

-

예 : 디렉토리 권한을 가진 로그 : 로그의

C:\: 
    BUILTIN\Administrators Allowed: Full Control 
    NT AUTHORITY\SYSTEM Allowed: Full Control 
    BUILTIN\Users Allowed: Read & Execute 
    BUILTIN\Users Allowed: Special Permissions: 
      Create Folders 
    BUILTIN\Users Allowed: Special Permissions: 
      Create Files 
    \Everyone Allowed: Read & Execute 
    (No auditing) 

C:\WINDOWS: 
    BUILTIN\Users Allowed: Read & Execute 
    BUILTIN\Power Users Allowed: Modify 
    BUILTIN\Power Users Allowed: Special Permissions: 
      Delete 
    BUILTIN\Administrators Allowed: Full Control 
    NT AUTHORITY\SYSTEM Allowed: Full Control 
    (No auditing) 

다음과 같은 또 다른 하나 사람들의에

User Name Full Name Description Account Type SID Domain PasswordIsChangeable PasswordExpires PasswordRequired AccountDisabled AccountLocked Last Login 
53cuR1ty  Built-in account for administering the computer/domain 512 S-1-5-21-2431866339-2595301809-2847141052-500 COMMSVR21 True False True False False 09/11/2010 7:14:27 PM 
ASPNET ASP.NET Machine Account Account used for running the ASP.NET worker process (aspnet_wp.exe) 512 
+0

입력 파일의 구문을 자유롭게 결정할 수 있다면 일반 Python 코드로 작성할 수 있습니다! –

+0

ㅎ, 좋을거야. 또는 그것을 더 재미있게 만들기 위해서, Lisp;) – Blender

+0

@Vijay Mathew : 안녕하세요. 그게 무슨 뜻 이니? 다시 말해 줄 수 있니? 만약 당신이 제대로 얻을, 입력 파일은 항상 동일한 형식입니다. @Blender : 오 신 Lisp. –

답변

1

난 항상 밀어 파이썬 :

Audit Policy 
    ------------ 
     GPO: xxx & yyy Servers 
      Policy:   AuditPolicyChange 
      Computer Setting: Success 

     GPO: xxx & yyy Servers 
      Policy:   AuditPrivilegeUse 
      Computer Setting: Failure 

     GPO: xxx & yyy Servers 
      Policy:   AuditDSAccess 
      Computer Setting: No Auditing 

이 탭이 하나를 구분입니다 얼굴;)

나는 정규식을 보는 것이 좋습니다 : http://docs.python.org/howto/regex.html, 귀하의 필요에 맞게 선택하십시오. 내가 할 수 없기 때문에 나는 그것을하지 않을 것이다. 그러나 파일이 콜론으로 구분 된 키/값 쌍이 개행 문자로 분리되어 있다면 이것이 가능할 것이다.

regex = '(.*):(*)(.*)\n' 

이 (희망) 세 그룹과 일치 : 여기에 퀵 스타트 (일 수 있음)의 콜론 앞의 그룹 (폐기 할 수있는 그룹 2) (1 군), 공간은, 그리고 텍스트와 그 사이의 텍스트 (그룹 3).

(내가 정규 표현식 동맥류를 갖고 싶지 않기 때문에 지금까지는 도움이된다.) 행운을 빕니다!

+0

@Blender : 그렇다면 전체 텍스트 파일을 구문 분석 한 다음 'regex'를 사용하여 원하는 값을 필터링해야한다고 말하는 것입니까? 글쎄, 실제로, 나는 또한 XD 덕분에 정규 표현식 동맥류를 예견한다. –

+0

구문이 일관성이 있다면 확실하다. 그렇지 않으면 일이 실제로 추악해질 수 있습니다. 더 큰 샘플 청크를 업로드하거나 게시 할 수 있습니까? 나는 샘플 스크립트를 작성하려고 할 수 ... – Blender

+0

몇 가지 샘플을 추가 –

관련 문제