社区
Linux/Unix社区
帖子详情
如何使用vim在多个文件中进行字符串查找与替换?
roger_77
2009-06-26 05:33:35
使用vim,需要在某个目录下搜索到包含“字符串A”的文件,并将这些文件中的“字符串B”替换成“字符串C”。
例如:把目录中包含字符串"AAA"的所有文件都查找出来,然后把文件中的另一个字符串"BBB"替换为"CCC".
注:保证“AAA”与“BBB”字符串会同时在一个文件中存在。
请问如何使用Vim的命令达到上述目的?
...全文
2641
18
打赏
收藏
如何使用vim在多个文件中进行字符串查找与替换?
使用vim,需要在某个目录下搜索到包含“字符串A”的文件,并将这些文件中的“字符串B”替换成“字符串C”。 例如:把目录中包含字符串"AAA"的所有文件都查找出来,然后把文件中的另一个字符串"BBB"替换为"CCC". 注:保证“AAA”与“BBB”字符串会同时在一个文件中存在。 请问如何使用Vim的命令达到上述目的?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
roger_77
2010-01-20
打赏
举报
回复
早已解决,终于想起上CSDN来结帖来了,不好意思呀^=^
========解决方法如下========
>:set nobackup
>:vimgrep /AAA/ **/*.*
>qq
>:%s/BBB/CCC/ge
>:write
>:cn
>q
>9999@q
---说明----
q* 是宏命令
qq 宏q
q 退出宏
N@q 执行宏q N次
uc27
2010-01-20
打赏
举报
回复
学习一下
roger_77
2009-06-29
打赏
举报
回复
http://www.linuxsir.org/bbs/archive/index.php/t-207886.html
roger_77
2009-06-29
打赏
举报
回复
[Quote=引用 6 楼 brookmill 的回复:]
sed -i 's/BBB/CCC/g' `grep -l AAA`
列出所有包含AAA的文件: grep -l AAA
针对一个文件作替换的命令: sed -i 's/BBB/CCC/g' filename
两个结合在一起就是批量替换了。
's/BBB/CCC/g' 两个单引号,用双引号好像也行。
`grep -l AAA` 这两个不是单引号,而是键盘上和~在一起的那个键,在1键的左边。作用是把grep命令的输出放在命令行的这个位置。
[/Quote]
不好意思,忘记了说明vim的使用环境,我是在windows系统下运行的vim。没有sed这些命令或工具可用。
只是想用vim中即可完成这些操作。
roger_77
2009-06-29
打赏
举报
回复
[Quote=引用 9 楼 cxwmx 的回复:]
首先用命令: find / -name AAA 或者 ls -l / | grep AAA 找出含AAA的文件!
然后通过vim编辑器对查找出的文件进行编辑,再来进行替换:%s/BBB/CCC/g(在整个文件进行替换)!!
这种比较麻烦,但比较容易理解!!
[/Quote]
我也知道这样可以问题,就因为这样太麻烦了,所以才想要使用vim的命令来完成这些操作,简化这些重复劳动。
wywgk
2009-06-29
打赏
举报
回复
好多技巧啊,学习了
roger_77
2009-06-29
打赏
举报
回复
谢谢brookmill兄弟的热心帮助,我回头试试先。
如果达到预期目的马上结贴.
一 铭
2009-06-29
打赏
举报
回复
vim 是可以做的
: h args
快乐田伯光
2009-06-28
打赏
举报
回复
vim是可以做到的,用args载入要修改的文件,用argdo做批量修改.
cxwmx
2009-06-27
打赏
举报
回复
首先用命令: find / -name AAA 或者 ls -l / | grep AAA 找出含AAA的文件!
然后通过vim编辑器对查找出的文件进行编辑,再来进行替换:%s/BBB/CCC/g(在整个文件进行替换)!!
这种比较麻烦,但比较容易理解!!
k_summer7
2009-06-27
打赏
举报
回复
vi中只能进行文本内的替换,例如:
:%s/AAA/BBB/g
要想在文件范围内进行替换,方法很多,
awk,sed都可以,shell也行,具体的例子就不写了,很easy的
brookmill
2009-06-26
打赏
举报
回复
提醒楼主: 动手之前最好先备份。
5楼的命令我自己试过,应该可以,但是还是小心一点好。
brookmill
2009-06-26
打赏
举报
回复
sed -i 's/BBB/CCC/g' `grep -l AAA`
列出所有包含AAA的文件: grep -l AAA
针对一个文件作替换的命令: sed -i 's/BBB/CCC/g' filename
两个结合在一起就是批量替换了。
's/BBB/CCC/g' 两个单引号,用双引号好像也行。
`grep -l AAA` 这两个不是单引号,而是键盘上和~在一起的那个键,在1键的左边。作用是把grep命令的输出放在命令行的这个位置。
brookmill
2009-06-26
打赏
举报
回复
sed -i 's/BBB/CCC/g' `grep -l AAA`
老腊肉泡酒
2009-06-26
打赏
举报
回复
如果 非要这样的话可以在vim里面用:shell
老腊肉泡酒
2009-06-26
打赏
举报
回复
[Quote=引用 2 楼 puheavy123 的回复:]
vim适于处理字符的东西。。怎么lz用它处理目录啊?
[/Quote]
顶起。
puheavy123
2009-06-26
打赏
举报
回复
vim适于处理字符的东西。。怎么lz用它处理目录啊?
pottichu
2009-06-26
打赏
举报
回复
为啥一定要用 vim 去做呢?
用 find + grep + sed 去做很容易阿。
vim
查找
并
替换
多个
匹配字符
通常我们在
使用
vim
的
使用
需要
查找
文档
中
是否含有需要的字符 1.
vim
1.txt进入文档编辑 2.输入/键,再输入需要
查找
的字符,或者输入?键再输入需要
查找
的字符 3.
查找
到后可以enter进去,再输入N键,上下翻动,也可输入i进入编辑模式 通常我们在
使用
vim
的时候也需要
替换
文档
中
所有匹配的字符 1.
vim
1.txt进入
文件
,按esc键,并输入:(冒号),再输入 例子...
vim
中
替换
字符串
的方法有哪些
s#str1/#str2/#
替换
当前行第一个str1/ 为str2/:%s+/str11/str12/+/str21/str22+ (
使用
+ 来
替换
/ ): /str11/str12/
替换
成/str21/str22/:%s+/oradata/apras/+/user01/apras1+ (
使用
+ 来
替换
/ ): /oradata/apras/
替换
成/user01/apras1/:%s/str1/str2/(等同于 :g/str1/s//str2/)
替换
每一行的第一个str1为str2。...
VIM
批量
文件
查找
和
替换
使用
vim
时间不长,linux命令行下常用的文本编辑工具,所以需要掌握一些基本的用法。很多不会的不是百度就谷歌,总有你想要的答案。
vim
grep 支持正则, 所以注意正则的关键符号, 必要的时候需要转义,转义符'\'。将当前
文件
所有匹配的abc字符
替换
成123,如果没有"g"选项,则
替换
当前位置。比如在当前目录下
查找
带有“abc”字符的后缀为txt的
文件
, 不包括子目录。(2)对所有打开的
文件
执行
替换
并更新到
文件
。(1)打开所有需要操作的
文件
。前提熟悉
vim
的
替换
命令。
VIM
和sed
替换
字符串
方法
目录
VIM
替换
字符串
方法 1. 基本
替换
2.可以
使用
# 作为分隔符,此时
中
间出现的 / 不会作为分隔符 3.
文件
中
删除^M 4. 其它技巧 sed命令
替换
字符串
VIM
替换
字符串
方法 1. 基本
替换
:s/str1/str2/
替换
当前行第一个str1为str2 :s/str1/str2/g
替换
当前行所有str1为str2 :n,$s/str1/st...
vim
替换
字符串
带斜杠_如何在
Vim
/Vi
中
快速
查找
和
替换
文本内容
Vim
是 Vi 多模式命令行编辑器的加强版,通常默认的Unix或Linux系统
中
都默认自带Vi命令编辑器。当然,为了更好的体验,如果系统默认没有安装
Vim
,建议安装
Vim
。通过本文的讲解,你将学会如何在
Vim
/Vi
中
快速的
使用
命令
进行
查找
替换
文本。基础的
查找
和
替换
首先,启动
Vim
/Vi编辑器,处于正常模式下。如果你不确定是否处于正常模式下,这时你可以按“ESC”,编辑器就会进入正常模式。
替换
命令...
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章