大家好,小弟最近有笔资料很类似,
原始资料如下 想转出的格式
name
GRA GRB GRC |name
GRA
0 "a1:X " X ## NC |0 "a1:X " X ## NC
1 "a1:1 " O ## NC |1 "a1:1 " O ## NC
|name
GRB
|0 "a1:X " X ## NC
|1 "a1:1 " O ## NC
|name GRC
|0 "a1:X " X ## NC
|1 "a1:1 " O ## NC
name
RXINE RXINO |name
RXINE
0 "a1:0 " 0000 |
0 "a1:0 " 0000
1 "a1:0 " 0001 |
1 "a1:0 " 0001
2 "a1:0 a3:1 " XXXX |
2 "a1:0 a3:1 " XXXX
3 "a1:0 a6:1 " 0111 |
3 "a1:0 a6:1 " 0111
4 "a1:1 a6:0 " 1000 |
4 "a1:1 a6:0 " 1000
a "a1:1 a3:0 " 1IOO |
a "a1:1 a3:0 " 1IOO
b "a1:1 " 1110 |
b "a1:1 " 1110
|name
RXINO
|
0 "a1:0 " 0000
|
1 "a1:0 " 0001
|
2 "a1:0 a3:1 " XXXX
|
3 "a1:0 a6:1 " 0111
|
4 "a1:1 a6:0 " 1000
|
a "a1:1 a3:0 " 1IOO
|
b "a1:1 " 1110
就参考d大的程式,写了如下的程式码,一开始先开档读档
if (/^name (.*)/){
@name = split, $&;
shift @name;
}
if (/\s+\w\s+\"(.*)\"\s+\w+/){
@value = split, $_;
print "\n\nname $_\n", @value[0..$#value] for @name;
}
输出的结果是这样
name GRA
0"a1:X"X##NC
name GRB
0"a1:X"X##NC
name GRC
0"a1:X"X##NC
name GRA
1"a1:1"O##NC
name GRB
1"a1:1"O##NC
name GRC
1"a1:1"O##NC
name RXINE
0"a1:0"0000
name RXINO
0"a1:0"0000
name RXINE
1"a1:0"0001
name RXINO
1"a1:0"0001
name RXINE
2"a1:0a3:1"XXXX
name RXINO
2"a1:0a3:1"XXXX
请问各位板友,变成这样要怎麽修改比较好呢?
感谢回答~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.253.114.115
1F:→ flu:第二个if区块内的第一列述叙 理应产生没有任一个元素含有\s的 04/18 23:52
2F:→ flu:阵列不是吗? 但输出中仍然是满满的空白和换行...这到底是? 04/18 23:53
3F:→ hws110:f大,不好意思,已修正,输出的内容正是您说的样子 04/19 22:12
※ 编辑: hws110 来自: 111.253.114.115 (04/19 22:12)