将文本字段parsing为excel列

我试图parsing超过20,000条logging的数据。 每个logging有4个字段,前面加上2个字母数字值。 下面是一个2logging的例子。 我目前有一个臃肿的解决scheme,使用基于这里的链接的Java: 使用JavaparsingHTML数据(DOMparsing) 。 但是我不打算使用这个解决scheme,因为这只是分离logging而已。 有没有一种解决scheme,使用VBS,Python或任何其他语言,可以根据我已经使用的逻辑分开领域? 还是另一个逻辑的方法

100000000 SMP008483 |--- Category Western |--- Model Ford |--- Asset Delivered Date ? |--- Scheduled ? 100000001 SMP008484 |--- Category Eastern |--- Model Chevrolet |--- Asset Delivered Date ? |--- Scheduled ? 

预期的输出在这里:

 ID1 ID2 Category Model Asset Delivered Date Scheduled 100000000 SMP008483 Western Ford ? ? 100000001 SMP008484 Eastern Chevrolet ? ? 

这是一个蹩脚的,但它的作品。 干得好:

 #!/bin/bash i=0 while IFS= read -r line;do echo $line | egrep -q '^[0-9]+' if test $? -eq 0; then id1=$(echo $line | cut -d' ' -f1) id2=$(echo $line | cut -d' ' -f2) ((i++)) fi echo $line | egrep -q 'Category' if test $? -eq 0; then cat=$(echo $line | sed -e 's/^.*Category//') ((i++)) fi echo $line | egrep -q 'Model' if test $? -eq 0; then model=$(echo $line | sed -e 's/^.*Model//') ((i++)) fi echo $line | egrep -q 'Asset Delivered Date' if test $? -eq 0; then date=$(echo $line | sed -e 's/^.*Asset Delivered Date//') ((i++)) fi echo $line | egrep -q 'Scheduled' if test $? -eq 0; then sch=$(echo $line | sed -e 's/^.*Scheduled//') ((i++)) fi if test $i -eq 5; then echo -e "${id1}\t${id2}\t${cat}\t${model}\t${date}\t${sch}" i=0 fi done <<< "$(cat ${1})" 

*不要忘记添加所有的字段,因为如果你这样做会中断。