その行のテキストが別の行で複数回繰り返される場合は、シェルスクリプトを使用してファイル内の特定の行の内容を変更するにはどうすればよいですか?たとえば、私のファイルでは次のようになります。
##############################
[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
再び反転。