如何在 Linux 上 grep 和替换文件中的单词?
虽然有很多方法可以打印和使用 Linux 目录中特定文件中的特定单词,但当我们谈论 grepping 一个特定单词然后用其他单词替换它时,我们将需要混合某些 Linux 实用程序命令.
我们必须注意的两个 Linux 实用程序命令是 -
find - 用于定位特定文件或目录
sed -流编辑器的缩写,用于执行搜索、编辑和替换等功能。
为了解决 grep 的问题并替换特定的单词,我们将使用包含上述两个命令的命令的组合。
考虑我们有一个名为的文本文件textfile.txt,其中存在以下文本 -
this is a simple file
现在,我们想将 text = simple替换为text = not a simple 之类的东西。为此,我们将首先定位文件,然后使用 exec 实用程序命令告诉 Linux 我们要执行某些操作,然后使用 sed 命令帮助我们 grep 并更改文件中的字符串。
在终端中运行以下命令 -
findtextfile.txt-type f -exec sed -i "" "s/sample/not a sample/g" {} \;
运行文件后,您的内容textfile.txt应该是这样的 -
this is a not a sample file
问题解决了,但是等等,如果您使用的是 mac os,那么为了实现此输出,您需要导出两个环境变量,或者您可以将它们放在 ~/.bashrc 或 ~/.zshrc 中。
在下面的代码中,您可以看到我的 ~/.zshrc 中存在的不同环境变量 -
immukul@192 linux-questions-code % cat ~/.zshrcexport 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 字符串中的每个字节都是它自己的字符,而不应用任何编码规则。
请注意上面 ~/.zshrc 文件输出中的最后两个变量,您只需将它们放在 ~/.bashrc 或 ~/.zshrc 文件中即可。
以上是 如何在 Linux 上 grep 和替换文件中的单词? 的全部内容, 来源链接: utcz.com/z/335619.html