在shell/awk中逐字节读取hextump文件
我是bash/awk编程新手,很快需要您的帮助 这是通过tcpdump捕获的ipv6 tcp数据包的十六进制输出-在shell/awk中逐字节读取hextump文件,shell,awk,tcpdump,hexdump,Shell,Awk,Tcpdump,Hexdump,我是bash/awk编程新手,很快需要您的帮助 这是通过tcpdump捕获的ipv6 tcp数据包的十六进制输出- 6000 0000 0018 0620 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0002 *0026 0026 0000 0001 0000 0002 {5}412 0065 0034 0000* 6162 6364 {5}以32位字指定tcp数据包长度
6000 0000 0018 0620 0000 0000
0000 0000 0000 0000 0000 0001 0000 0000
0000 0000 0000 0000 0000 0002 *0026 0026
0000 0001 0000 0002 {5}412 0065 0034 0000*
6162 6364
{5}以32位字指定tcp数据包长度,tcp数据包为b/w*s
(* and {} are used to clear the question ,they are not
present actually in output)
现在我需要使用bash/awk脚本从这个信息中提取tcp头
我想我需要一个字节一个字节地读取文件,直到达到tcp指定的长度,但我不知道如何做到这一点
因此,假设tcp信息已写入一个文件中,我想知道如何从上面指定的输出中提取tcp信息
Thanx提前..使用awk功能,该功能允许您设置RecordSeparator(RS)和OutputRecordSeparator(ORS)所使用的字符,并使用NumberRecord(NR)var监视您打印的rec的哪一部分
awk '{BEGIN RS=" ";ORS="\n";} { if (NR >20 && NR < 31) print $0}' hexFile
awk'{BEGIN RS=“”;ORS=“\n”;}{if(NR>20&&NR<31)打印$0}'hexFile
如果您提供有关文件的更多详细信息(这些数据的重复集看起来如何?)和预期输出,我可能会使您的效率更高
我希望这能有所帮助。b/w是否意味着介于两者之间?你的问题是每行的字数不同吗?您可以设置记录sep(RS=“”;ORS=“\n”),使每4位数字位于单独的行上。这有用吗?祝你好运。你的b/w意思是介于和之间,请在下面的答案栏中发布你的完整答案,这样我就可以接受它并关闭这个问题的线程。