複数の項目を含むテキストファイルを処理しようとしていますが、名前、ID、サイズ、およびPage 83 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ワークシートの行と列に入れたいと思います。
これは2つのデータフィールドの出力例です。また、「N」データフィールドでこれをどのように使用できるか疑問に思います。
ベストアンサー1
単純なカンマ区切りのcsv
Excelインポートでは、次のものを使用できます。
sed -n '/Name = /!d
N;N;N;N
y/\n/,/
s/, *Shareable = [^,]*//
s/[^,=]*= //g;p' yourfile
最初の行は、Name =
この行を除くすべての行を削除します。これを続行し、バッファに次の4行を追加するだけですN
。このy
コマンドは、行間の改行をコンマで区切って置き換えます。最初のs
コマンドは行を削除しShareable
、2番目のコマンドはまでの部分を削除し、=
値のみを残します。行数に関係なく動作します。この場合、引用符のないテキストフィールドは自動的に認識されます。