当某些文本匹配时,将每行中的数值替换为另一个值

replace the numerical value with another value in each line when some text is matched

我有一个大文件,如果某些文本在相应行上匹配,我想处理每一行上的数值。例如,如果我在一个大文本文件中有以下几行:

system.membus.respLayer1.occupancy              55000                       # Layer occupancy (ticks)
system.membus.respLayer1.utilization              5.5                       # Layer utilization (%)
system.l2.prefetcher.prefetcher.num_hwpf_identified            0                       # number of hwpf identified

如果每行开头的文本匹配,我想用它的双倍值替换 55000,用它的一半值替换 5.5。这些值可能因文件不同而不同,即 550005.5 不固定。 任何人都可以帮助我如何使用 Python, sed, awk,etc

来实现这一点

awk 救援!

$ awk '/occupancy/   {sub(,*2)} 
       /utilization/ {sub(,/2)}1' file

    system.membus.respLayer1.occupancy              110000                       # Layer occupancy (ticks)
    system.membus.respLayer1.utilization              2.75                       # Layer utilization (%)
    system.l2.prefetcher.prefetcher.num_hwpf_identified            0                       # number of hwpf identified