2015-10-31 104 views
0

一些可以提出一個解決方法這個錯誤:如何使xxd -r與xxd -i的輸出一起使用?

cat /bin/ls |xxd -g 1 -i | xxd -r 
xxd: sorry, cannot seek backwards. 

但是,如果你這樣做:

cat /bin/ls |xxd -g 1 | xxd -r 

這是確定。這是一個錯誤?

在過去,我能夠執行此操作,但現在我只是想知道是否存在任何替代方法?

+0

這似乎是-i使xxd想要尋找標準輸入,當然是不可能的。也許它不習慣做到這一點,而更新的版本開始這樣做。很難說它是一個錯誤還是「預期的行爲」,但你可以通過在第一個和第二個命令之間使用臨時文件來解決它。 – kcraigie

+0

它不想在輸入流中回溯。這就是說它無法在輸出流中回溯。問題是'xxd -r'希望讀取默認的'xxd'輸出格式,而不是'xxd -i'輸出格式。它期望讀取文件偏移量,並且它將'0xed'解釋爲比'0xfa'更早的偏移量或類似的東西。 –

回答

1

嘗試xxd -r -p。這適用於我:

:; cat /bin/ls | xxd -g 1 -i | xxd -r -p | md5sum - /bin/ls 
fd20b8459b80679cddf83adf58277264 - 
fd20b8459b80679cddf83adf58277264 /bin/ls 
相關問題