여러 줄 문자열을 객체 또는 배열로 어떻게 변환 할 수 있습니까?

0xDECAFBAD

Python에서는이 작업을 수행하기가 쉽지만 PowerShell에서이 작업을 수행하는 방법을 알아 내려고 책상에 머리를 부딪 히고 있습니다. Powershell에서 호출하는 다른 실행 파일에서이 출력을 얻고 있습니다. 최종 목표는 첫 번째 텍스트 (세션 ID), IP 주소 및 날짜 / 시간을 추출하여 각 텍스트를 PowerShell 개체로 변환하는 것입니다.

내가 잃어버린 곳은 각 정보 그룹 (텍스트 3 줄)을 배열로 가져 오는 방법입니다.이를 통해 객체로 쉽게 변환 할 수 있습니다. 거대한 문자열에서 객체를 생성하는 방법도 있다고 확신합니다. 나는 두 가지 방법 중 하나에 열려 있습니다. 아래 출력은 변수에 저장됩니다. 문자열을 어떻게 분할하더라도 배열은 필요한 3 줄 대신 각 텍스트 줄을 요소로 사용합니다. 나는 성공하지 못한 새 줄과 캐리지 리턴을 제거하려고 시도했습니다. 누군가 나를 올바른 방향으로 밀어 줄 수 있습니까?

10480fc9aa       telnet    [email protected]
        Logon at: Tue Jan 14 07:55:20 2020
        Running:  program.bat
10481e6429       telnet    [email protected]
        Logon at: Tue Jan 14 07:58:53 2020
        Running:  program.bat
1048338699       telnet    [email protected]
        Logon at: Tue Jan 14 08:09:28 2020
        Running:  program.bat
10485aef1d       telnet    [email protected]
        Logon at: Tue Jan 14 08:39:17 2020
        Running:  program.bat
1048ece4b9       telnet    [email protected]
        Logon at: Tue Jan 14 10:52:24 2020
        Running:  program.bat
1048fef5d5       telnet    [email protected]
        Logon at: Tue Jan 14 11:18:44 2020
        Running:  program.bat
1049008fab       telnet    [email protected]
        Logon at: Tue Jan 14 11:20:30 2020
        Running:  program.bat
104910d0a7       telnet    [email protected]
        Logon at: Tue Jan 14 11:42:15 2020
        Running:  program.bat
104930ec10       telnet    [email protected]
        Logon at: Tue Jan 14 12:26:23 2020
        Running:  program.bat
10493c8e24       telnet    [email protected]
        Logon at: Tue Jan 14 12:43:08 2020
        Running:  program.bat
10493f7650       telnet    [email protected]
        Logon at: Tue Jan 14 12:47:13 2020
        Running:  program.bat
mklement0

switchregexe를 사용하여 관심있는 정보를 추출한 다음 추출 된 정보를 사용하여 3 줄의 각 블록에 대한 사용자 지정 출력 개체를 구성하는 문을 통해 실행 파일의 출력 줄을 하나씩 처리하는 다음 접근 방식을 시도 할 수 있습니다 .

$i = 0 
yourexecutable.exe | ForEach-Object {
  $line = $_
  switch (++$i % 3) {
    1 { # 1st line of a block of 3: extract the session ID and IP address.
      $null = $line -match '^(\S+) .*@(\S+)'
      $sessionId = $Matches[1]
      $ip = $Matches[2]
    }
    2 { # 2nd line: extract the login timestamp.
      $null = $line -match 'Logon at: (.+)'
      $date = $Matches[1]
    }
    default { # 3rd line: construct the output object for the block at hand.
      [pscustomobject] @{
        SessionId = $sessionId
        Ip = $ip
        Date = $date
      }
    }
  }
}

샘플 입력으로 다음과 같은 결과를 얻을 수 있습니다.

SessionId  Ip          Date
---------  --          ----
10480fc9aa 172.16.8.11 Tue Jan 14 07:55:20 2020
10481e6429 172.16.8.14 Tue Jan 14 07:58:53 2020
1048338699 172.16.8.13 Tue Jan 14 08:09:28 2020
10485aef1d 172.16.8.10 Tue Jan 14 08:39:17 2020
1048ece4b9 172.16.8.3  Tue Jan 14 10:52:24 2020
1048fef5d5 172.16.8.6  Tue Jan 14 11:18:44 2020
1049008fab 172.16.8.15 Tue Jan 14 11:20:30 2020
104910d0a7 172.16.8.15 Tue Jan 14 11:42:15 2020
104930ec10 172.16.8.7  Tue Jan 14 12:26:23 2020
10493c8e24 172.16.8.4  Tue Jan 14 12:43:08 2020
10493f7650 172.16.8.15 Tue Jan 14 12:47:13 2020

모든 속성 값은 문자열입니다 . 당신이 원한다면 .Date유형으로 속성을 [datetime]예를 들어, 당신은 사용할 수 있습니다 [datetime]::ParseExact($date, '...')- 참조 System.DateTime.ParseExact.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

문자열을 분할하여 배열을 객체로 어떻게 변환 할 수 있습니까?

분류에서Dev

.geojson 파일을 중첩 배열이있는 JavaScript 객체로 어떻게 변환 할 수 있습니까?

분류에서Dev

jQuery 객체를 JS 배열로 어떻게 변환 할 수 있습니까?

분류에서Dev

어떻게 이것을 자바 스크립트를 사용하여 객체 또는 배열로 구문 분석 할 수 있습니까?

분류에서Dev

yii에 여러 줄 문자열을 어떻게 입력 할 수 있습니까?

분류에서Dev

React Hook을 사용하여 React Native에서 TextInput으로 객체 배열의 특정 문자열을 어떻게 변경할 수 있습니까?

분류에서Dev

다음 객체 배열을 어떻게 변환 할 수 있습니까?

분류에서Dev

객체를 복사하지 않고 문자열을 char []로 어떻게 변환 할 수 있습니까?

분류에서Dev

바이트 문자열을 바이트 객체로 어떻게 변환 할 수 있습니까?

분류에서Dev

Javascript에서 문자열을 객체로 어떻게 변환 할 수 있습니까?

분류에서Dev

이 문자열을 javascript Date 객체로 어떻게 변환 할 수 있습니까?

분류에서Dev

JS : 문자열 ( "2015 년 3 월 10 일")을 Date 객체로 어떻게 변환 할 수 있습니까?

분류에서Dev

문자열을 배열로 어떻게 변환 할 수 있습니까?

분류에서Dev

MVC 컨트롤러에서 객체 / 모델 참조 / 주소로 사용할 문자열을 어떻게 변환 할 수 있습니까?

분류에서Dev

문자열을 리터럴 객체 배열로 변환 할 수 있습니까?

분류에서Dev

PHP에서 여러 배열 값이있는 여러 문자열을 어떻게 반복 할 수 있습니까?

분류에서Dev

여러 배열 객체의 인덱스를 어떻게 변경할 수 있습니까?

분류에서Dev

객체 내부의 중첩 배열을 쉼표로 구분 된 하나의 연결된 문자열 값으로 어떻게 변환 할 수 있습니까?

분류에서Dev

여러 줄 문자열 매개 변수를 어떻게 전달할 수 있습니까?

분류에서Dev

내가 어떻게 자바 스크립트 배열로 객체를 변환 할 수 있습니까?

분류에서Dev

swift3을 사용하여 Firebase 데이터베이스의 여러 문자열이있는 객체를 어떻게 저장할 수 있습니까?

분류에서Dev

bash 셸 변수에서 여러 공백 줄로 끝나는 문자열을 할당 할 수 있습니까?

분류에서Dev

배열의 값을 어떻게 얻거나 배열을 문자열로 변환 할 수 있습니까?

분류에서Dev

JavasScript에서 배열을 객체의 배열로 어떻게 전환 할 수 있습니까?

분류에서Dev

NumPy 배열의 문자열 표현을 NumPy 배열로 어떻게 변환 할 수 있습니까?

분류에서Dev

리터럴 개행 문자가있는 파일에 여러 줄 문자열을 어떻게 복사 할 수 있습니까?

분류에서Dev

JSON 문자열을 읽을 수있는 것으로 어떻게 변환 할 수 있습니까?

분류에서Dev

객체는 자체 객체의 배열을 보유 할 수 있습니다. 그러나 이것이 상속과 함께 어떻게 작동합니까?

분류에서Dev

내 문자열을 소문자로 어떻게 변환 할 수 있습니까?

Related 관련 기사

  1. 1

    문자열을 분할하여 배열을 객체로 어떻게 변환 할 수 있습니까?

  2. 2

    .geojson 파일을 중첩 배열이있는 JavaScript 객체로 어떻게 변환 할 수 있습니까?

  3. 3

    jQuery 객체를 JS 배열로 어떻게 변환 할 수 있습니까?

  4. 4

    어떻게 이것을 자바 스크립트를 사용하여 객체 또는 배열로 구문 분석 할 수 있습니까?

  5. 5

    yii에 여러 줄 문자열을 어떻게 입력 할 수 있습니까?

  6. 6

    React Hook을 사용하여 React Native에서 TextInput으로 객체 배열의 특정 문자열을 어떻게 변경할 수 있습니까?

  7. 7

    다음 객체 배열을 어떻게 변환 할 수 있습니까?

  8. 8

    객체를 복사하지 않고 문자열을 char []로 어떻게 변환 할 수 있습니까?

  9. 9

    바이트 문자열을 바이트 객체로 어떻게 변환 할 수 있습니까?

  10. 10

    Javascript에서 문자열을 객체로 어떻게 변환 할 수 있습니까?

  11. 11

    이 문자열을 javascript Date 객체로 어떻게 변환 할 수 있습니까?

  12. 12

    JS : 문자열 ( "2015 년 3 월 10 일")을 Date 객체로 어떻게 변환 할 수 있습니까?

  13. 13

    문자열을 배열로 어떻게 변환 할 수 있습니까?

  14. 14

    MVC 컨트롤러에서 객체 / 모델 참조 / 주소로 사용할 문자열을 어떻게 변환 할 수 있습니까?

  15. 15

    문자열을 리터럴 객체 배열로 변환 할 수 있습니까?

  16. 16

    PHP에서 여러 배열 값이있는 여러 문자열을 어떻게 반복 할 수 있습니까?

  17. 17

    여러 배열 객체의 인덱스를 어떻게 변경할 수 있습니까?

  18. 18

    객체 내부의 중첩 배열을 쉼표로 구분 된 하나의 연결된 문자열 값으로 어떻게 변환 할 수 있습니까?

  19. 19

    여러 줄 문자열 매개 변수를 어떻게 전달할 수 있습니까?

  20. 20

    내가 어떻게 자바 스크립트 배열로 객체를 변환 할 수 있습니까?

  21. 21

    swift3을 사용하여 Firebase 데이터베이스의 여러 문자열이있는 객체를 어떻게 저장할 수 있습니까?

  22. 22

    bash 셸 변수에서 여러 공백 줄로 끝나는 문자열을 할당 할 수 있습니까?

  23. 23

    배열의 값을 어떻게 얻거나 배열을 문자열로 변환 할 수 있습니까?

  24. 24

    JavasScript에서 배열을 객체의 배열로 어떻게 전환 할 수 있습니까?

  25. 25

    NumPy 배열의 문자열 표현을 NumPy 배열로 어떻게 변환 할 수 있습니까?

  26. 26

    리터럴 개행 문자가있는 파일에 여러 줄 문자열을 어떻게 복사 할 수 있습니까?

  27. 27

    JSON 문자열을 읽을 수있는 것으로 어떻게 변환 할 수 있습니까?

  28. 28

    객체는 자체 객체의 배열을 보유 할 수 있습니다. 그러나 이것이 상속과 함께 어떻게 작동합니까?

  29. 29

    내 문자열을 소문자로 어떻게 변환 할 수 있습니까?

뜨겁다태그

보관