我使用的模拟代码需要从input.txt文件中读取参数,该文件看起来像
paramA = 1,paramB = 2,
paramC = 3,paramD = 4,
在模拟中扫描参数(如paramC)时,我需要每次手动更改paramC的值。如何使用perl脚本执行此操作,以便在键入
时perl scriptname input.txt paramC 100
在命令行中我可以获得修改后的输入文件,其中paramC更改为100
paramA = 1,paramB = 2,
paramC = 100,paramD = 4,
我可以通过创建像
这样的模板文件来实现paramA = 1,paramB = 2,
paramC = <>,paramD = 4,
然后使用perl匹配标记&lt;&gt;并用我想要的值替换它。但是,是否有更直接的方法来匹配参数名称并更改其值?
感谢。
答案 0 :(得分:2)
显而易见的答案是使用正则表达式。 Perl非常擅长这些。
所以你可以 - 例如 - 做:
s/paramC = \d+/paramC = $value/g;
我会想到哪个技巧?
编辑:或者在评论中使用TLP的模式:
s/^paramC = \K[^ ,]+/$value/g;
或者也许:
s/^paramC = \K\d+/$value/g;