擅长:python、mysql、java
<p>我将按照下面的方式使用GNU<code>AWK</code>来完成这个任务,让<code>file.txt</code>内容</p>
<pre><code>***SETTINGS***
library rfgui.py maximum_allowed_heartbeats_missed=2 DISPLAY=12
library OperatingSystem
library others.py
</code></pre>
<p>然后</p>
<pre><code>awk '$NF~/^DISPLAY=/{$NF="DISPLAY=0"}{print}' file.txt
</code></pre>
<p>输出</p>
<pre><code>***SETTINGS***
library rfgui.py maximum_allowed_heartbeats_missed=2 DISPLAY=0
library OperatingSystem
library others.py
</code></pre>
<p>说明:如果最后一列内容(<code>$NF</code>)以(<code>^</code>)<code>DISPLAY=</code>开头,则将最后一列内容设置为<code>DISPLAY=0</code>。对于每一行,执行<code>print</code>。请注意,这样会将多个空格压缩为一个空格,用于修改发生的行。如果必须有3个空格,则将代码更改为<code>awk 'BEGIN{OFS=" "}$NF~/^DISPLAY=/{$NF="DISPLAY=0"}{print}' file.txt</code></p>
<p><em>(在gawk 4.2.1中测试)</em></p>