2017-02-18 110 views
1

用cat創建示例文件。如何用xxd逐行製作hexdump?

cat > /tmp/test.txt <<EOF 
> X1 
> X22 
> X333 
> X4444 
> EOF 

檢查樣本文件中的內容。

cat /tmp/test.txt 
X1 
X22 
X333 
X4444 

用xxd做一個hexdump。

xxd /tmp/test.txt 
0000000: 5831 0a58 3232 0a58 3333 330a 5834 3434 X1.X22.X333.X444 
0000010: 340a 

如何使一個hexdump都一行行用如下這樣的方式XXD:

58 31 0a 
58 32 32 0a 
58 33 33 33 0a 
58 34 34 34 34 0a 

回答

1

一切後,我發現在組合hexdump工具與sed最好的解決辦法:

hexdump -v -e '/1 "%02x "' /tmp/test.txt | sed 's/0a /0a\n/g' 
+0

它是** xargs的-I '{}' 的bash -c 'XXD <<< 「$ {1}」' - '{}'

+0

你是什麼意思? – hek2mgl

+0

在你的第二個答案中,有一個**'**丟失,它是**「$ {1}」**,而不是**「$ {1}」**。 –

2
$ xxd -ps </tmp/test.txt|sed -e 's/\(..\)/\1 /g' -e 's/0a /0a\n/g' 
58 31 0a 
58 32 32 0a 
58 33 33 33 0a 
58 34 34 34 34 0a 
+0

再加上一個成爲第一個想出這種解決方案的人!接受投票應該是你的! – hek2mgl

+0

我已經測試過其他長文件,對長文件沒有足夠的健壯性。 –

+0

*長*多久?我的意思是字節數,行數? – hek2mgl

0

請下載並保存爲/home/urls.csv。

sample file to test

要使用
hexdump都-v -e '/ 1 「%02X」' /home/urls.csv測試| SED的/ 0A/0A \ N/G'

enter image description here

要使用
xargs的測試-I '{}' 的bash -c 'XXD < < < 「$ {1}」' - '{}' < /home/urls.csv

enter image description here

要使用
xargs的測試-I '{}' 的bash -c 'HD < < < 「$ {1}」' - '{}' < /home/urls.csv enter image description here

要與

xxd -ps </home/urls.csv |sed -e 's/\(..\)/\1 /g' -e 's/0a /0a\n/g' 

測試它很清楚,Ipor Sircer的答案對於長文件來說沒有足夠的可靠性。

enter image description here