Linux下批量替换字符串
问题描述
平时的工作中离不开编写脚本,LaTeX
等纯文本文件。然而,有时候我们会遇到多个文件中存在某一个字符串,但是时间久了我们记不请哪个文件中有这个字符串.
由于技术的更新我们需要把这个字符串替换为新的字符串,
而一个文件一个文件的去人工查找,然后即使使用vim
来替换也是一个相当大的工作量,同时也容易遗漏。
解决方案
本文介绍一条命令即可搞定这个操作:
1 | sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录` |
命令解释
- 命令行中的
反单引号
(和左上角~
在同一个键上), 表示执行这条命令,并将其输出作为其他命令的参数。 - 命令
grep 原字符串 -rl 所在目录
, 使用grep
查找当前目录中含有原字符串
的文件,并带有路径表示。 sed -i \"s/原字符串/新字符串/g\" 目标文件
表示使用sed
将目标文件中的原字符串
替换为新字符串
。