Re: [請益] 文字檔案處理
※ 引述《Chris7462 (~烤焦麵包~)》之銘言:
: 我有一組資料像下面這樣:
: [ X3 X4 Z2 Z3 Z4 ] (Prob: 0 )
: [ X1 X3 X4 Z2 Z3 Z4 ] (Prob: 0 )
: [ X2 X3 X4 Z2 Z3 Z4 ] (Prob: 0 )
: [ X1 X2 X3 X4 Z2 Z3 Z4 ] (Prob: 0 )
: [ X Z1 Z2 Z3 Z4 ] (Prob: 0 )
這裡有個 X 大括號裡要換成什麼? X_{?}
: [ X1 Z1 Z2 Z3 Z4 ] (Prob: 0 )
: [ X2 Z1 Z2 Z3 Z4 ] (Prob: 0 )
: [ X1 X2 Z1 Z2 Z3 Z4 ] (Prob: 0.5499 )
: [ X3 Z1 Z2 Z3 Z4 ] (Prob: 0 )
: [ X1 X3 Z1 Z2 Z3 Z4 ] (Prob: 0 )
: [ X2 X3 Z1 Z2 Z3 Z4 ] (Prob: 0 )
: [ X1 X2 X3 Z1 Z2 Z3 Z4 ] (Prob: 0.0129 )
: [ X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
: [ X1 X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
: [ X2 X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
: [ X1 X2 X4 Z1 Z2 Z3 Z4 ] (Prob: 0.1359 )
: [ X3 X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
: [ X1 X3 X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
: [ X2 X3 X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
: [ X1 X2 X3 X4 Z1 Z2 Z3 Z4 ] (Prob: 0.0026 )
: 我希望能把輸出的結果變成下面這樣:
: $X_{1,2},Z_{1,2,3,4}$ & $0.5499$
: $X_{1,2,4},Z_{1,2,3,4}$ & $0.1359$
: $X_{1,2,3},Z_{1,2,3,4}$ & $0.0129$
: $X_{1,2,3,4},Z_{1,2,3,4}$ & $0.0026$
: $X_{3,4},Z_{2,3,4}$ & $0$
: $X_{1,3,4},Z_{2,3,4}$ & $0$
: .
: .
: .
: 就是按照右邊的機率值大小排序後輸出,然後把 X 跟 Z 寫成我上面那樣。
: 希望版上的強者能幫我一下,謝謝謝謝。
#!/usr/bin/perl
chomp(@Data = <DATA>);
undef @Index;
for(@Data) {
undef @X;
undef @Z;
while(s/([XZ])(\d)//) {
push(@$1, $2);
}
$XZ = 'X_{' . join(',', @X) . '},Z_{' . join(',', @Z) . '}';
/Prob: +([^ ]+)/;
push(@Index, sprintf("\$%s\$ \$%s\$", $1, $XZ));
}
for(sort { $b cmp $a } @Index) {
($b, $a) = split(' ', $_);
printf("%-28s & %s\n", $a, $b);
}
__DATA__
[ X3 X4 Z2 Z3 Z4 ] (Prob: 0 )
[ X1 X3 X4 Z2 Z3 Z4 ] (Prob: 0 )
[ X2 X3 X4 Z2 Z3 Z4 ] (Prob: 0 )
[ X1 X2 X3 X4 Z2 Z3 Z4 ] (Prob: 0 )
[ X Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X1 Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X2 Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X1 X2 Z1 Z2 Z3 Z4 ] (Prob: 0.5499 )
[ X3 Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X1 X3 Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X2 X3 Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X1 X2 X3 Z1 Z2 Z3 Z4 ] (Prob: 0.0129 )
[ X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X1 X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X2 X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X1 X2 X4 Z1 Z2 Z3 Z4 ] (Prob: 0.1359 )
[ X3 X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X1 X3 X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X2 X3 X4 Z1 Z2 Z3 Z4 ] (Prob: 0 )
[ X1 X2 X3 X4 Z1 Z2 Z3 Z4 ] (Prob: 0.0026 )
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.236.185
推
10/01 22:26, , 1F
10/01 22:26, 1F