我需要一个可以在单个文本或文本文件中用其他表达式替换多个表达式的工具。这是因为我必须将具有相同功能的模板从一个 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