文本处理并将内容导出到 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

对于将简单的逗号分隔csv导入到 Excel 中,您可以使用类似的东西

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

第一行删除除这些Name =行之外的所有行。仅继续执行这些操作,并将接下来的四行添加到缓冲区中N。该y命令用分隔逗号替换行之间的换行符。第一个s命令删除该Shareable行,第二个命令删除直到 的部分,=仅留下值。它适用于任意数量的行。在这种情况下,将自动识别不带引号的文本字段。

相关内容