当该行中的文本在其他行中重复多次时,如何使用 Shell 脚本修改文件中特定行的内容

当该行中的文本在其他行中重复多次时,如何使用 Shell 脚本修改文件中特定行的内容

当该行中的文本在其他行中重复多次时,如何使用 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再次逆转。

相关内容