我正在尝试处理包含多个条目的文本文件,我对文本的数据字段感兴趣,其中包含名称、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
行,第二个命令删除直到 的部分,=
仅留下值。它适用于任意数量的行。在这种情况下,将自动识别不带引号的文本字段。