Linux 将hole.xsl内容从.str文件提取到xsl/txt文件

Linux 将hole.xsl内容从.str文件提取到xsl/txt文件,linux,string,grep,cat,computer-forensics,Linux,String,Grep,Cat,Computer Forensics,我正在做一些取证学习,得到了一个包含完整.xsl文件的.str文件: 我需要从.str文件中提取所有.xsl文件。我使用了类似于: cat pc1.str | grep "<From>" > talk.txt cat pc1.str | grep”“>talk.txt 问题是我得到的几乎是所有的文本,但不是可读的格式。我想我只是从内心得到了一切 你能帮我把文本从转到吗 为清晰起见进行编辑:我希望获取所有文本,从xml开始,直到/log .str文件由字符串创建 以下是我正

我正在做一些取证学习,得到了一个包含完整.xsl文件的.str文件:

我需要从.str文件中提取所有.xsl文件。我使用了类似于:

cat pc1.str | grep "<From>" > talk.txt
cat pc1.str | grep”“>talk.txt
问题是我得到的几乎是所有的文本,但不是可读的格式。我想我只是从内心得到了一切

你能帮我把文本从
转到

为清晰起见进行编辑:我希望获取所有文本,从xml开始,直到/log

.str文件由
字符串创建

以下是我正在使用的实际文件:

从第20893696行到第20919817行,我可能会使用perl:

#!/usr/bin/perl

use strict;
use warnings;

while ( <> ) {
     print if m,<?xml version, .. m,</log>,
}

将一次读取80个字节

如果您希望将
.str
文件的所有行从包含
的行添加到包含
的第一行,那么这应该可以工作

awk '/<?xml version="1.0"?>/{p=1} p; /<\/log>/{exit}' pc1.str
cut -f 2 pc1.str | awk '/<?xml version="1.0"?>/{p=1} p; /<\/log>/{exit}'
这将添加
cut
,以修剪第一个基数字段(awk在字段范围内没有那么好)

如果您还想在开始xml标记之前和结束标记之后忽略任何内容,那么类似的操作应该可以正常工作(未测试)

cut-f2 pc1.str | awk'/{p=1;$0=substr($0,1,index($0,”)}{sub(/^.*/,$0,“&”)}p//{exit}'

这使用
substr
sub
删除不需要的部分行。

什么是
.str
文件?第一列是文件内容的一部分吗(想必您不希望这样做)?除了第一列之外,文件中还有其他需要忽略的非XSLT数据吗?谢谢回答。我不想忽略任何内容,我必须获取所有文本,从开始到结束。那么文件内容块中就没有任何二进制数据了?好啊第一栏怎么样?如果这在文件中,那么如果只希望得到XSLT文件作为输出,则需要忽略这一点。数据也是原始的(用于换行符和控制字符)?由
字符串
用什么命令/参数创建的
-t
/
--radix
至少看起来是这样的。还要意识到,
strings
可能已经丢失了原始源中的数据。我从.img文件创建了.str文件。我使用了这个命令:
strings-a-t-dpc1.img>pc1.str
当我尝试我在第一个问题中显示的命令时,我得到了如下文本:20893777抱歉这个问题:如何使用我创建的pc1.str文件运行perl应用程序来提取内容?我尝试了第一个命令,但是收到了这样的消息:
awk:line 1:语法错误或接近我的错别字。修好了,非常感谢。如果你能告诉我你什么时候能修好,我将不胜感激。我应该从控制台本身获得结果吗?已经修复。这些命令都会将输出发送到标准输出。你想怎么做就怎么做。(如果你的问题中包含了文件中的实际文本片段内容,那么像我这样的人实际上可以更容易地测试我们的答案。)遗憾的是,结果我一无所获。我正在上传完整的.str文件,以便您可以测试是否可以。它有点大,有点重。
cut -f 2 pc1.str | awk '/<?xml version="1.0"?>/{p=1} p; /<\/log>/{exit}'
cut -f 2 pc1.str | awk '/<?xml version="1.0"?>/{p=1; $0=substr($0, 1, index($0, "<?xml version=\"1.0\"?>"))} {sub(/^.*<\/log>/, $0, "&")} p; /<\/log>/{exit}'