如何将依赖于上下文的更改应用于文本文件中的数值数据?

时间:2015-01-03 22:00:15

标签: replace text-files batch-processing

我知道很多批处理器可以执行查找和替换操作,但是它们通常不能处理数值公式,也不能只编辑文本文件的某个部分。 具体来说,我有以下形式的问题。我有一份包含大量不重要数据的文件,并且不定期地看起来像这样:

texttextexttexttext
apple [color]
texttextexttexttext
orange [number x]
texttextexttexttext
banana [number y], [number z]
texttextexttexttext

......等等,约650次。我想要做的是搜索苹果的每个实例然后如果“color”=红色则用f(x,y)替换“number z”,如果“color”=黄色则取代g(x,y),h(x, y)如果“颜色”=绿色,否则不管它。 f,g和h是相当简单的函数 - 例如f(x,y)= 0.1 * x + 2 * y,四舍五入到最接近的整数。 我认为这是一个完全没有编码经验,但愿意尝试编写脚本的人。但是,如果有人知道可以处理这样一个任务的程序,那也不错。

1 个答案:

答案 0 :(得分:0)

如果您的数据与您的建议一样正常,则不一定需要任何编程。您可以使用合适的文本编辑器(例如,适用于Mac的TextWrangler或适用于Windows的Notepad ++)并应用一些正则表达式,搜索类似

的内容
^(apple \[red\]\n.*\norange.*\n.*\nbanana \[.*?\], \[)(number z)(\])

并替换为

\1f(x,y)\3

请参阅RegEx101 demo

如果需要调整/进一步详细说明,请发表评论。