Shell-Script

文本處理並將內容導出到 Excel 工作表

  • June 30, 2017

我正在嘗試處理一個包含多個條目的文本文件,我對由名稱、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 個”數據欄位設置此功能。

csv對於要導入 excel的簡單逗號分隔,您可以使用類似

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

第一行刪除除Name =那些之外的所有行。僅對那些繼續,並將接下來的四行附加到緩衝區中N。該y命令用分隔逗號替換行之間的換行符。第一個s命令刪除該Shareable行,第二個命令刪除部分直到=只留下值。它適用於任意數量的行。在這種情況下,文本欄位將自動辨識,不帶引號。

引用自:https://unix.stackexchange.com/questions/374336