首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用递归grep过滤文件,然后在文件上内联使用sed

使用递归grep过滤文件,然后在文件上内联使用sed
EN

Stack Overflow用户
提问于 2021-03-30 22:03:04
回答 2查看 80关注 0票数 1

例如,如果我想打开其中包含int语句的所有文件,则使用grep并使用xargs将搜索结果输送到vim

代码语言:javascript
复制
grep -rl 'int' . | xargs vim

通常,如果我想用int替换float,我会像这样通过sed这样做

代码语言:javascript
复制
sed 's/\<int\>/float/g' foo.c

但是,如果我想找到所有文件中有单词int,然后在文件内联上进行单词替换,我将如何组合这两个文件(例如。sed -i 's/\<int\>/float/g')

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-30 22:17:20

,但我如何将两者结合起来

你应该做的就是:

代码语言:javascript
复制
grep -rl 'int' . | xargs sed -i 's/\<int\>/float/g'
票数 2
EN

Stack Overflow用户

发布于 2021-03-30 22:17:37

您可以使用-s标志将命令文件传递给vim,因此我相信您可以创建一个名为"cmd.vim“的”命令“文件,其中包含行:s/int/float/g,然后使用grep -rl 'int' . | xargs vim -s cmd.vim

编辑

这是如果您想在从int更改到浮动之后将文件保持在vim中;如果您只想进行更改@KamilCuk的答案更好

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66879030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档