从终端搜索和替换,但需要确认

ran*_*tic 6 command-line find sed text-processing

在许多文本编辑器中,您可以进行搜索和替换,并可以选择检查每个找到的案例。我希望能够在 Ubuntu 的命令行中执行类似的操作。我知道sed提供了在多个文件中查找和替换字符串的能力,但是无论如何都要让用户确认每个替换?

理想情况下,我想要一个解决方案,它允许我在目录中的所有文件中执行这种“提示”查找和替换。

mur*_*uru 7

维姆怎么样?

vim '+%s/set/bar/gc' some_file
Run Code Online (Sandbox Code Playgroud)
  • + 用于在文件加载后运行命令。
  • % 在整个缓冲区(文件)上运行命令。
  • gc是标志 to :substituteg用于处理行中的所有表达式并c确认每个替换。

你实际上不能阻止 Vim 打开文件,但你可以自动保存和退出:

vim '+bufdo %s/set/bar/gc | up' '+q' some_file another_file
Run Code Online (Sandbox Code Playgroud)
  • bufdo在每个缓冲区上运行命令。这包括 之后的部分|,因此保存对每个缓冲区的更改 ( up)。
  • q 退出,因为我们现在处于最后一个缓冲区,所以退出 Vim。