我有這個txt文件,其中包含某些音頻文件的某些部分的概率。將行連接到文本文件中的列表
實施例:
K-0_0_1_0_1_0_1_1_8547 [
0 0 1 ]
K-0_0_1_0_1_0_1_1_23086 [
1 1.191074e-27 1.574905e-26 ]
K-0_0_1_0_1_0_1_1_23781 [
0 0 1 ]
K-0_0_1_0_1_0_1_1_3732 [
0 0 1 ]
K-0_0_1_0_1_0_1_1_13964 [
0 0 1 ]
K-0_0_1_0_1_0_1_1_3098 [
1 0 0 ]
K-0_0_1_0_1_0_1_1_8296 [
0 0 1 ]
K-0_0_1_0_1_0_1_1_1780 [
0 0 1 ]
K-0_0_1_0_1_0_1_1_21968 [
1 1.377321e-38 0 ]
在其中期望的輸出應是
K-0_0_1_0_1_0_1_1 [
0 0 1
1 0 0
0 0 1
0 0 1
0 0 1
0 0 1
1 1.377321e-38 0
1 1.191074e-27 1.574905e-26
0 0 1 ]
輸入文件的結構類似於本
filename_pieces [ probability_1 probability_2 probability_3 ]
我想收集的所有部分文件名在一個 的概率組合列表中,其中位置按升序排列。
所以在向上的情況下,應該合併名單中,像這樣
_1780
_3098
_3732
and so on..
我已經正在這樣做的方法是使用這個腳本結構..
awk 'NF == 2{ match($1,/^[0-9]+(_[0-9]+){7}/); k = substr($1,RSTART,RLENGTH); next }
{ $NF=""; a[k]=a[k]"\n "$0 }
END { for(i in a) printf "%s [%s ]\n\n",i,a[i] }'
但這似乎並不喜歡文件名前面的K-
,這很關鍵。有些時候我可以改變腳本來處理這個問題。前面的有效文件名只是0_0_1_0_1_0_1_1
,所以沒有K-
的號碼。
那麼,什麼是您的有效文件名?我看到你要求他們有8個數字用下劃線分開。什麼是有效的前綴(沿着'K-')? – randomir
@randomir我剛剛添加了它。但有效的文件名是相同的名稱沒有'K-'所以只是'0_0_1_0_1_0_1_1' – Lamda