小智 160
在这里,我使用 sed 将目录 /home/user/directory/ 中每个扩展名为 c 的文件中出现的单词“cybernetnews”替换为“cybernet”。
find /home/user/directory -name \*.c -exec sed -i "s/cybernetnews/cybernet/g" {} \;
Run Code Online (Sandbox Code Playgroud)
一种更通用的变体,您可以从执行目录递归搜索并仅对常规、可读、可写的文件进行操作:
find ./ -type f -readable -writable -exec sed -i "s/cybernetnews/cybernet/g" {} \;
Run Code Online (Sandbox Code Playgroud)
Sab*_*con 31
流编辑器 sed 是此类工作的强大实用程序,是我的首选,但是,如果您想使用基于 Ubuntu 的本机应用程序从普通文本编辑器执行此操作,我建议您查看 Jedit , 它在存储库中可用,可以通过在控制台中键入来安装:
sudo apt-get install jedit
Run Code Online (Sandbox Code Playgroud)
启动jedit,点击搜索菜单项,在菜单列表中,点击在目录中搜索项,会出现如下对话框:

这类似于 Notepad++ 并且做同样的事情,我相信这就是你想要的。
Mic*_*l K 13
perl -pi -e 's/oldtext/newtext/g' *
Run Code Online (Sandbox Code Playgroud)
用新文本替换当前文件夹中所有文件中出现的任何旧文本。但是,您必须使用反斜杠转义 oldtext 和 newtext 中的所有 perl 特殊字符。
小智 7
一个非常简单的解决方案:将*.txt文件夹中的所有文件替换string_1为string_2:
sed -i 's/string_1/string_2/g' *.txt
Run Code Online (Sandbox Code Playgroud)