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