我已使用此命令成功地将 .txt 文件转换为 .pcap 文件。然而,这些都是我从 www 获得的 .txt 文件,但是当我尝试将它用于我个人在另一个程序上创建的 .txt 文件时,它确实创建了 filename.pcap,但它是空的。
有没有人有更好的选择?
同样,尽管我非常感谢在实现结果的代码中提供的所有帮助,但如果有人可以向我推荐有关与为什么会发生这种情况相关的主题的维基百科文章,那真的会帮助我从上下文中理解事情是如何工作的,就像我认为的那样有用的代码,就 linux 的工作原理而言,不会让我更加明智。所以我确信这将被视为一个重复的问题,但实际上我真的很想具体了解这种情况,而不是参考另一个 apt 包。
非常感谢
sed 's/^[0-9:]*//' filename.txt | sed 's/^ //g' | sed 's/ .*$//g' | xxd -r -p > filename.pcap
更新编辑:
上面工作的 txt 文件集合与我创建的那些 txt 文件的集合之间唯一一致的区别是我的完全由数字组成,每行一个,长度为 10 位,而其他包含键盘上的所有其他内容。
不知道这是否有帮助,是的,我在文本编辑器中查看了一个 pcap 文件,只需将其扩展名更改为 txt,看起来它们是用密码加密的,该密码利用了更多字符标准键盘,所以......是的,它很标准,不确定我在那里期待什么。
我不知道 sed 或 xxd,但我会尝试分别遵循 4 个命令:
sed 's/^[0-9:]*//' filename.txt > step1.txt
sed 's/^ //g' step1.txt > step2.txt
sed 's/ .*$//g' step2.txt > step3.txt
xxd -r -p step3.txt > filename.pcap
在每个步骤之后,我都会找到一个方便的
sed
教程,并检查命令的输出是否与我认为的相符,从而在此过程中学习一些sed
知识xxd
。您可能已经注意到我删除了“|” 您最初使用的命令行中的字符。“|” 是一个管道,表示命令的输出将用作下一个命令的输入。命令输出不是通过管道传输数据,而是填充到中间文件中,然后用作下一个命令的输入。
你提到那个
假设“数字”是指十进制数字序列,那么第一个
sed
表达式意思是匹配零个或多个十进制数字或锚定到行首的冒号字符,并将它们替换为空(这可能是为了从常规
xxd
输出中删除默认字节偏移)将删除所有内容,只留下一系列空行.