Linux 的多种文本替换工具?

Linux 的多种文本替换工具?

我需要一个可以在单个文本或文本文件中用其他表达式替换多个表达式的工具。这是因为我必须将具有相同功能的模板从一个 wiki“翻译”到另一个 wiki。

我在网上找到了一个可以做到这一点的工具(链接如下),但它一次最多只能替换 50 个项目,而我实际上需要替换的远不止这些。我还需要保存替换列表,这样我就可以定期重复使用它,而不必每次都重写它。 https://www.joydeepdeb.com/tools/find-replace.html

gedit 也使用“全部替换”功能执行此操作,但每次只能替换一个表达式,这对我的任务来说毫无用处,因为正如我所说,我需要替换的内容远不止这些。

如果有人知道任何可以做到这一点的 Linux 软件或在线工具,那将非常有帮助。

答案1

sed是一个用于过滤和转换文本的流编辑器...查找和替换命令的语法看起来像s/find/replace/其中find是字符串或正则表达式并且replace不是正则表达式并且主要是(除了一些sed占位符和修饰符外),一个字符串...该命令可以在命令行之间使用,' ... '或者" ... "像这样(textfile是包含要查找和替换的文本的文件):

sed 's/find/replace/' textfile

可以使用选项嵌套多个命令,-e如下所示:

sed -e 's/find1/replace1/' -e 's/find2/replace2/' -e 's/find3/replace3/' textfile

sed也可以从脚本文件使用命令(每行一个命令)脚本文件如下所示:

s/find1/replace1/
s/find2/replace2/
s/find3/replace3/

-f该脚本文件通过如下选项调用:

sed -f scriptfile textfile

注意sed不会编辑/修改原始文件,除非您在命令行上textfile提供就地编辑选项,如下所示:-i

sed -i 's/find/replace/' textfile

sed主要是一个在终端中使用的命令行工具。

不过,GNU 的在线实现sed可以在sed.js.org

相关内容