- 論壇徽章:
- 6
|
回復(fù) 7# jason680
謝謝。你這個(gè)方法可以。
在awk內(nèi)index函數(shù)也可以顯示"\x41\x42\x43\x44"表示“ABCD”。
awk '{n=index($0,"\x41\x42\x43\x44");if(n)print t+n-1;else t=t+length($0)+1}' test_Hex.bin 這條命令也是可以的。
但是,發(fā)現(xiàn)兩個(gè)問(wèn)題,awk內(nèi)的index只返回該行匹配的第一個(gè)位置;
返回的第二個(gè)匹配的位置是錯(cuò)誤的(因?yàn)榍耙粋(gè)匹配后沒(méi)有給t賦值)。
例子:- # awk '{n=index($0,"\x00\x00");if(n)print t+n-1;else t=t+length($0)+1}' test_Hex.bin
- 1
- 0
復(fù)制代碼 另外,我感覺(jué)二進(jìn)制文件一般不是用\x0a作為行分割的,或者說(shuō)二進(jìn)制文件就沒(méi)有換行的概念。
我用上面的命令處理一個(gè)200M的數(shù)據(jù)文件時(shí)速度不是很快。 |
|