当该行中的文本在其他行中重复多次时,如何使用 Shell 脚本修改文件中特定行的内容。例如在我的文件中:
##############################
[CC-COARSEGRID-PRECONDITIONER]
##############################
# Relaxation parameter
domega = 1.0
##############
[CC-PRECONDMK]
##############
# Relaxation parameter
domega = 0.9
我想将最后一行更改为: domega = 0.4
答案1
你可以使用sed
/ tac
:
tac file | sed '0,/domega = .*/s/domega = .*/domega = 0.4/' | tac
tac file
反转文件。0,/domega = .*/
domega
只在第 0 行和第一次出现的(现在是最后一次)之间进行替换。s/domega = .*/domega = 0.4/
然后进行更换。tac
再次逆转。