MoinMoin宏语法位置开关-er-oo

时间:2017-10-17 16:27:58

标签: sed macros

我有一个名为Color2的moinmoin wiki宏的新版本,我已安装,现在颜色声明在内容之后。例如,之前,它看起来像这样宣布,"我饿了",用白色文字颜色:

<<Color2(I am hungry,white)>>

现在,它已经改变了。他们切换它,以便在内容之后声明颜色:

<<Color2(white,*)>>

语法可能比这更复杂,但在我们的例子中,它通常以这种方式使用。

我的wiki中有大约400页的内容,我真的很想做一个颜色声明切换器。-o-oo。我希望找到<<Color2(*,white)>>的所有实例并将其替换为#!/bin/sh cat $1 | sed 's/Color2(\([^)]*\),\([^)]*\))/Color2(\2,\1)/g' exit 0 ,然后再将其替换为红色,黄色,蓝色等。

但这超出了我的 grep sed awk 技能。是否有任何大师和熟练的技能足以告诉我如何快速完成这项工作?

更新:

我根据Philipp的建议制作了一个甜蜜的剧本:

script.sh /path/to/text_file.txt > /path/to/new_file.txt

这可以非常可靠地捕捉大多数情况(那些颜色是用逗号分隔的,而不是所有这些,BTW)。菲利普,再次感谢这是语法,如果我们命名脚本&#34; script.sh&#34;:{{1}}

1 个答案:

答案 0 :(得分:0)

也许不是超级复杂,但有效(对于white)。如果您想按计划进行操作,请将white替换为其他颜色。不确定,您的格式有多么不同,但可能需要调整命令。因此,请告诉我们此解决方案是否适合您,以便人们可以给出更好的答复。

cat /tmp/t
<<Color2(white,I am hungry)>>

sed 's/Color2(white,\([^)]*\))/Color2(\1,white)/' /tmp/t
<<Color2(I am hungry,white)>>