Shell-Script
文本處理並將內容導出到 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 個”數據欄位設置此功能。
csv
對於要導入 excel的簡單逗號分隔,您可以使用類似sed -n '/Name = /!d N;N;N;N y/\n/,/ s/, *Shareable = [^,]*// s/[^,=]*= //g;p' yourfile
第一行刪除除
Name =
那些之外的所有行。僅對那些繼續,並將接下來的四行附加到緩衝區中N
。該y
命令用分隔逗號替換行之間的換行符。第一個s
命令刪除該Shareable
行,第二個命令刪除部分直到=
只留下值。它適用於任意數量的行。在這種情況下,文本欄位將自動辨識,不帶引號。