sed从包含模式的文件开头剥离十六进制

时间:2013-07-23 16:01:12

标签: sed

我今天下午大部分时间都在与sed进行黑客攻击,这有点像雷区。

我有一个十六进制格式的文件:

485454502F312E31203230300D0A0D0AFFD8FFE000104A46494600

我在0D0A0D0A上进行模式匹配,并设法将文件开头的内容删除到那里。问题是它离开了0D0A0D0A,所以我必须做第二遍才能选择它。

在一个命令中是否有一种方法可以删除最多并包含您匹配的模式并将其保存回同一文件?

提前感谢。

ID

2 个答案:

答案 0 :(得分:0)

您需要提供更好的问题描述。

根据您所写的内容,您可以使用sed的-i切换(就地编辑文件)来保存更改的文件:

sed -i.bak 's/^.*0D0A0D0A//' file

PS:在posix和某些旧版本的sed上没有-i开关可用。如果是这样,请使用它:

sed 's/^.*0D0A0D0A//' file > _temp && mv _temp file

答案 1 :(得分:0)

这应该有效:

sed -e 's/.*0D0A0D0A//' file.txt