여러 항목이 포함된 텍스트 파일을 처리하려고 하는데 이름, 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
간단한 쉼표로 구분된 csv
Excel 가져오기의 경우 다음과 같은 것을 사용할 수 있습니다.
sed -n '/Name = /!d
N;N;N;N
y/\n/,/
s/, *Shareable = [^,]*//
s/[^,=]*= //g;p' yourfile
첫 번째 줄은 Name =
이 줄을 제외한 모든 줄을 삭제합니다. 이 작업을 계속하고 버퍼에 다음 네 줄을 추가하면 됩니다 N
. 이 y
명령은 줄 사이의 줄 바꿈을 쉼표로 구분하여 바꿉니다. 첫 번째 s
명령은 행을 삭제하고 Shareable
, 두 번째 명령은 까지의 부분을 삭제하고 =
값만 남깁니다. 행 수에 관계없이 작동합니다. 이 경우 따옴표가 없는 텍스트 필드가 자동으로 인식됩니다.