我需要转换一个文本文件,其中包含嵌入到新文件中的适度表达式,而不需要它们。任何表达语言都可以。示例:
输入文件:
days = 12
times_per_day = 10
extra = 2
The quick brown fox jumped $days * ($times_per_day + $extra) times over the lazy dog
输出文件:
^{pr2}$这需要在Windows上运行。我的想法是:使用C预处理器(但我不认为它会静态地计算所有表达式?),或者用perl/python/awk/etc编写我的输入文件(不过,它不太可读)。在
我需要在3-4个小时内解决这个问题,所以我不想编写完整的解析器。在
如果您打算使用AWK,为什么gnubash不适合?像这样:
希望可读性很强。在
如果出于某种原因您想删除
^{pr2}$cat
(它是一个外部实用程序),那么这不是问题:在Python中,我将使用模板引擎。比如金贾2号。代码:
模板文件
^{pr2}$test.tpl
:输出:
任何时候使用^{} ,从定义上讲,它几乎就是一个黑客作业。在
但是,下面的perl“one liner”确实可以在这个特定实例中完成任务:
输出:
^{pr2}$说明:
开关:
-n
:为输入文件中的每一行创建一个while(<>){...}
循环。在-e
:告诉{代码:
!eof()
:基于文件末尾的选择性处理。在eval "\$$_"
:将foo = 3
这样的行计算成$foo = 3
s/(?<!\S)(?=[[:punct:]\d]*\$)((?:\$\w+|[[:punct:]\d]+|\s+)+)(?!\S)/\@{[$1]}/g
将
string $foo * $bar end
等文本翻译成string @{[$foo * $bar]} end
。print eval qq{"$_"};
:打印最后一行的计算结果。相关问题 更多 >
编程相关推荐