怎样使用vi编辑器修改Linux中的二进制文件

怎样使用vi编辑器修改Linux中的二进制文件,第1张

使用过Linux的人基本上都对vi有些许了解,这是Linux各种发行版都会有的标准文本编辑器,功能很强大。他不但能编辑正常的ASCII/ASIN文本文档,也可以编辑二进制文档的,这里我们就以Fedora为例来看一下如何使用vi编辑二进制文档。

工具/原料

安装了Linux的计算机/笔记本电脑

vi编辑器和需要编辑的二进制文件

方法/步骤

在Fedora桌面打开“Applications”-“System Tools”-“Terminal”打开命令终端,为vi编辑做准备。

在终端切换到要编辑的二进制文件目录,然后输入“vi -b test.bin”,其中“test.bin”是我要编辑的二进制文件。当然也可以直接指定vi要打开编辑的文件路径。“-b”参数,就是告诉vi编辑器,我是在用二进制模式打开文件的。

打开文件之后,我们是很难看到文件实际内容的,因为是二进制的,文件不是可读的,因此也不能直接编辑和修改的。这时,我们可以使用命令“:%xxd”强制将其转化为可读的十六进制显示,就可以使用正常的vi命令对文件进行编辑了。

转化之后的文件内容以十六进制表示,左侧是文件偏移值。我们计划将文件编译00000010开始的4个十六进制字符“FFFFFFFF”修改一下。

使用正常的vi编辑器命令将十六进制字符“FFFFFFFF”修改为“88888888”,修改完成后,使用esc命令返回到vi的命令模式,然后使用命令“:%xxd -r”就可以将其重新转化为二进制模式了。

步骤阅读

6

转化完成后,就可以看到,二进制显示的内容与没修改之前的内容已经有所差异。这时使用命令“:wq”保存退出就可以了。

一)通过vi编辑器来替换

vi/vim 中可以使用 :s 命令来替换字符串。

:s/well/good/ 替换当前行第一个 well 为 good

:s/well/good/g 替换当前行所有 well 为 good

:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good

:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good

n 为数字,若 n 为 .,表示从当前行开始到最后一行

:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good

:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good

可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符

:s#well/#good/# 替换当前行第一个 well/ 为 good/

:%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin

(二)直接替换文件中的字符串。(此法不用打开文件即可替换字符串,而且可以批量替换多个文件。)

1.perl命令替换,参数含义如下:

-a    自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定

-F    指定-a的分隔符,可以使用正则表达式

-e    执行指定的脚本。

-i<扩展名>   原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份。

-l    对输入内容自动chomp,对输出内容自动添加换行

-n    自动循环,相当于 while(<>) { 脚本}

-p    自动循环+自动输出,相当于 while(<>) { 脚本print}

用法示例:

perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c

将所有C程序中的foo替换成bar,旧文件备份成.bak

perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak

将当前文件夹下lishan.txt和lishan.txt.bak中的“shan”都替换为“hua”

perl -i.bak -pe 's/(\d+)/ 1 + $1 /ge' file1 file2

将每个文件中出现的数值都加一

2.sed命令下批量替换文件内容   

格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名

-i 表示inplace edit,就地修改文件

-r 表示搜索子目录

-l 表示输出匹配的文件名

s表示替换,d表示删除

示例:sed -i "s/shan/hua/g"  lishan.txt

把当前目录下lishan.txt里的shan都替换为hua       各个Linux详细命令介绍及应用可如下进行查找


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9019447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-24
下一篇 2023-04-24

发表评论

登录后才能评论

评论列表(0条)

保存