텍스트 처리 및 내용을 Excel 시트로 내보내기

텍스트 처리 및 내용을 Excel 시트로 내보내기

여러 항목이 포함된 텍스트 파일을 처리하려고 하는데 이름, ID, 크기 및 Page83 ID가 포함된 텍스트의 데이터 필드에 관심이 있습니다.

Command: show PhysicalDisk name='IBM (721)'
Status: Success
Time: 2017-06-30 15:50:50,051 EST
Data:
  Name = IBM (721)
  Id = 0004fb0000180000d27ba1c974a69157
  Size (GiB) = 15.0
  Shareable = No
  Page83 ID = 360050768018385ace800000000000d6a
  Thin Provision = Yes
  VolumeGroup = Generic_SAN_Volume_Group @ Unmanaged FibreChannel Storage Array  [FibreChannel Volume Group]
  San Server = Unmanaged FibreChannel Storage Array  [Unmanaged FibreChannel Storage Array]
Command: show PhysicalDisk name='IBM (722)'
Status: Success
Time: 2017-06-30 15:50:53,636 EST
Data:
  Name = IBM (730)
  Id = 0004fb0000180000627770ff185759b6
  Size (GiB) = 100.0
  Shareable = No
  Page83 ID = 360050768018385ace800000000000d6b
  Thin Provision = Yes
  VolumeGroup = Generic_SAN_Volume_Group @ Unmanaged FibreChannel Storage Array  [FibreChannel Volume Group]
  San Server = Unmanaged FibreChannel Storage Array  [Unmanaged FibreChannel Storage Array]

이 텍스트를 처리하여 Excel 워크시트의 행과 열에 넣고 싶습니다.

여기에 이미지 설명을 입력하세요.

이는 두 개의 데이터 필드에 대한 샘플 출력일 뿐입니다. 또한 "N" 데이터 필드에 이것을 어떻게 사용할 수 있는지 궁금합니다.

답변1

간단한 쉼표로 구분된 csvExcel 가져오기의 경우 다음과 같은 것을 사용할 수 있습니다.

sed -n '/Name = /!d
  N;N;N;N
  y/\n/,/
  s/, *Shareable = [^,]*//
  s/[^,=]*= //g;p' yourfile

첫 번째 줄은 Name =이 줄을 제외한 모든 줄을 삭제합니다. 이 작업을 계속하고 버퍼에 다음 네 줄을 추가하면 됩니다 N. 이 y명령은 줄 사이의 줄 바꿈을 쉼표로 구분하여 바꿉니다. 첫 번째 s명령은 행을 삭제하고 Shareable, 두 번째 명령은 까지의 부분을 삭제하고 =값만 남깁니다. 행 수에 관계없이 작동합니다. 이 경우 따옴표가 없는 텍스트 필드가 자동으로 인식됩니다.

관련 정보