当前位置: 首页 > 面试题库 >

Linux命令行全局搜索和替换

秦博延
2023-03-14
问题内容

我正在尝试在Linux机器上搜索和替换grep匹配的所有文件中的字符串。我已经做了一些想做的事情,但是我不确定如何将它们全部串在一起。

grep -n 'foo' * 将以以下形式给我输出:

[filename]:[line number]:[text]

对于grep返回的每个文件,我想将“ foo”替换为“ bar”,然后将结果写回到文件中。有什么好办法吗?也许花哨的管道?


问题答案:

您的意思是搜索并替换所有与grep匹配的文件中的字符串吗?

perl -p -i -e 's/oldstring/newstring/g' `grep -ril searchpattern *`

编辑

由于这似乎是一个很受欢迎的问题,所以我想更新一下。

如今,我主要使用ack-grep它,因为它更加用户友好。因此,上面的命令将是:

perl -p -i -e 's/old/new/g' `ack -l searchpattern`

要处理文件名中的空格,可以运行:

ack --print0 -l searchpattern | xargs -0 perl -p -i -e 's/old/new/g'

您可以使用进行更多操作ack-grep。假设您只想将搜索范围限制为HTML文件:

ack --print0 --html -l searchpattern | xargs -0 perl -p -i -e 's/old/new/g'

如果空格不是问题,它甚至会更短:

perl -p -i -e 's/old/new/g' `ack -l --html searchpattern`
perl -p -i -e 's/old/new/g' `ack -f --html` # will match all html files


 类似资料:
  • 轻推的全局搜索,可输入关键字来搜索联系人、群聊、组织机构、文件、聊天记录、文章、订阅号、轻应用。搜索出的聊天记录还可以查看聊天内容上下文。 1.手机版 搜索方法:消息/通讯录上方搜索栏-输入关键词   2.电脑版:左上方搜索栏-输入关键词

  • exVim使用ex-gsearch进行全局搜索。它也在必要 时候和id-utils创建的管道协同工作。总之,当你使用:Update后,exVim将会生成被 ex-gsearch使用的ID文件。 *注意事项: * 如果不能搜索,首先看你这个ID文件是否已经生成! 查找文本 ex-gsearch有俩个主要的方式可以在你的工程中 搜索文本。 <leader>gg: 将会搜索光标下的单词。 :GS <wo

  • 本文向大家介绍IntelliJ IDEA全局内容搜索和替换教程图解,包括了IntelliJ IDEA全局内容搜索和替换教程图解的使用技巧和注意事项,需要的朋友参考一下 在做项目时,有时会在整个项目里或指定文件夹下进行全局搜索和替换,这是一个很方便功能。使用方法如下: 一、全局搜索 1、使用快捷键Ctrl+Shift+F打开搜索窗口,或者通过点击Edit–>Find–>Find in path打开搜

  • 按下 / 键,编辑器底部会出现 / 符号,接着输入字符串,便可以进行搜索 / 向下搜索 ? 向上搜索 n 搜索下一个 N 搜索上一个 :s/源字符串/目标字符串 将源字符串替换为目标字符串 :s/源字符串/目标字符串/g 替换当前行中所有符合条件的字符串 :行号1,行号2s/源字符串/目标字符串/g 在指定行中进行替换 :%s/源字符串/目标字符串/g 全文替换

  • 问题内容: 诚然,对于SQL命令,我是一个菜鸟。黑客在我的一个WordPress网站上的每个帖子和页面的末尾插入了一个脚本标签,我试图在“ wp_posts”表中进行查找和替换,但是当我运行“模拟查询。这是我所拥有的: 无论我在第一组“查找”引号中添加了什么内容,即使是像“ hcifx”一样简单的东西,而不是所显示的整个脚本标签,我都会收到错误消息。有什么想法我要去哪里吗? 问题答案: 原来,该错

  • Sublime Text 提供两种主要搜索方式: 单文件搜索 多文件搜索 两种方式都支持正则表达式。 单文件搜索 搜索 键盘快捷键与搜索面板对应关系: 打开搜索面板 Ctrl + F 正则表达式 Alt + R 大小写匹配 Alt + C 精确匹配 Alt + W 下一个 Enter 上一个 Shift + Enter 所有 Alt + Enter 增量搜索 键盘快捷键与增量搜索面板对应关系: 打