如何在 Linux 系统中使用 grep 命令查找并替换文件中的单词?
虽然有很多方法可以从 Linux 目录中的特定文件中打印和使用特定单词,但如果要查找并替换某个单词,则需要结合使用一些 Linux 实用程序命令。
我们需要了解的两个 Linux 实用程序命令是 −
find −用于查找特定文件或目录
sed - 是流编辑器的缩写,用于执行搜索、编辑和替换等功能。
为了解决使用 grep 查找并替换特定单词的问题,我们将使用包含上述两个命令的组合命令。
假设我们有一个名为 textfile.txt 的文本文件,其中包含以下文本:
this is a simple file
现在,我们想把文本"simple"替换成类似"not a simple"的内容。为此,我们首先找到文件,然后使用 exec 命令告诉 Linux 我们要执行某些操作,最后使用 sed 命令来查找并修改文件中的字符串。
在终端中运行以下命令 −
find textfile.txt -type f -exec sed -i "" "s/sample/not a sample/g" {} \;
运行该文件后,textfile.txt 文件中的内容应该类似于这样 −
this is a not a sample file
问题已解决,但等等,如果您使用的是 macOS,那么为了实现此输出,您需要导出两个环境变量,或者您可以将它们放在 ~/.bashrc 或 ~/.zshrc 文件中。
在下面的代码中,您可以看到我的 ~/.zshrc 文件中存在的不同环境变量。
immukul@192 linux-questions-code % cat ~/.zshrc export GOPATH=/Users/immukul/go_projects export NDHOME=/Users/immukul/Downloads export GOTRACEBACK=all export GOROOT=/usr/local/go export LC_CTYPE=C export LANG=C
通过将 LC_CTYPE 设置为 C,我们告诉 Linux 字符串中的每个字节都是 C 类型。将其视为一个独立的字符,不应用任何编码规则。
请注意上面 ~/.zshrc 文件输出中的最后两个变量,您只需将它们添加到 ~/.bashrc 或 ~/.zshrc 文件中即可。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

