我有一组相当大的 CSV 文件需要解析。其中大部分都非常简单,但是我有一些带有嵌入对象的“组”对象,我需要正确提取这些对象。
该文件看起来像这样
Test_GroupA,Group,-,-,-,-,NodeA,,-,
,,,,,,NodeB,,,
,,,,,,NodeC,,,
,,,,,,NodeD,,,
,,,,,,NodeE,,,
Test_GroupB,Group,-,-,-,-,NodeA,,-,
,,,,,,NodeB,,,
,,,,,,NodeC,,,
,,,,,,NodeX,,,
,,,,,,NodeE,,,
,,,,,,NodeF,,,
所以,正如你所看到的,我需要一些类似的东西:
awk -F"[,|]" '{if ($2=="Group")
then - pseudo code->
print "create group",$1
print "add member in $7 to group found in $1 of first row"
continue until you reach next $2=="Group"), then loop
这让我非常困惑:)
编辑:: 似乎很多值有些虚假,并且在它们为空白时包含“-”,而不仅仅是 ,,
就像是
sed 's/\,\-\,/\,\,/g'
我认为应该替换它们,但是我认为我需要一个前导通配符。
新示例:
grp-ext-test-test,Group,-,-,-,-,Net_10.10.10.10,,-,
,,,,,,Net_10.101.10.10,,,
,,,,,,ws-ext-test-10.102,,,
,,,,,,ws-ext-test-10.103,,,
,,,,,,ws-ext-test-10.104,,,
,,,,,,ws-ext-test-10.105,,,
,,,,,,ws-ext-test-10.106,,,
,,,,,,ws-ext-test-10.107,,,
,,,,,,ws-ext-test-10.108,,,
,,,,,,ws-ext-test-10.108,,,
在其上运行新字符串只会产生:
create group grp-ext-test-test