这是捕获的数据包的 tcpdump 十六进制输出。
使用的命令是..
$ tcpdump -X -s0 protochain <portno>
0x0000: 6000 0000 0080 3220 0000 0000 0000 0000 ................
0x0040: 0000 0000 0000 0001 0000 0000 0000 0000 ................
0x0090: 6174 6500 0000 0329 ........
这些...
可以是任何它们是对应于指定十六进制字符的各自 ascii 字符。我需要提取中间的十六进制部分。
我需要以下格式的输出。请在这方面给我一些建议。
6000 0000 0080 3220 0000 0000 0000 0000
0000 0000 0000 0001 0000 0000 0000 0000
6174 6500 0000 0329
我试过这个,但似乎不正确..
cut -d ":" -f2 tmp_packet.txt | awk -F " " '{printf "%s %s %s %s %s %s %s %s
\n",$1,$2,$3,$4,$5,$6,$7,$8}' > packet.txt
也尝试了一些东西,cut -b
但这给出了奇怪的输出。
如果可能的话,建议使用 awkNR
和NF
. 我是 awk 的新手,所以对它们了解不多。
我试过这个并将它们...
作为输出。
cut -d ":" -f2 tmp_packet.txt | awk -F " " '{printf "%s\n",$NF}' > packet.txt
输出 :
................
................
........
有没有办法使用 awk 打印除最后一列之外的所有列(即打印除上述指定之外的所有内容)。