使用 sed 和 xxd 将 txt 文件转换为 pcap 文件

使用 sed 和 xxd 将 txt 文件转换为 pcap 文件

我曾使用此命令成功将 .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 文件集合之间唯一一致的区别是,我的 txt 文件集合仅由数字组成,每行一个数字,长度为 10 位,而其他 txt 文件集合包含键盘上的所有其他内容。

不知道这是否有帮助,是的,我还在文本编辑器中查看了一个 pcap 文件,只需将其扩展名更改为 txt,看来它们是用一种密码加密的,该密码使用了标准键盘上更多的字符,所以...是的,这是相当标准的,不确定我在那里期待什么。

答案1

你提到

上述方法所适用的 txt 文件集合与我创建的 txt 文件集合之间唯一一致的区别是,我的 txt 文件集合完全由数字组成,每行一个数字,长度为 10 位

假设“数字”指的是十进制数字序列,那么第一个sed表达式

s/^[0-9:]*//

意义匹配零个或多个固定在行首的十进制数字或冒号字符,并将其替换为空(大概是为了从常规xxd输出中删除默认字节偏移量)将删除所有内容,只留下一串空行。

答案2

我不知道 sed 或 xxd我将尝试分别遵循这 4 个命令:

  1. sed 's/^[0-9:]*//' filename.txt > step1.txt
  2. sed 's/^ //g' step1.txt > step2.txt
  3. sed 's/ .*$//g' step2.txt > step3.txt
  4. xxd -r -p step3.txt > filename.pcap

按照每个步骤,我都会找到一个方便的sed教程,并检查命令的输出是否与我认为的相符,从而在此过程中学到一些sed知识xxd

您可能已经注意到,我从您最初使用的命令行中删除了“|”字符。“|”是管道,表示命令的输出将用作下一个命令的输入。命令输出不是通过管道传输数据,而是被塞入中间文件,然后用作下一个命令的输入。

相关内容