해당 줄의 텍스트가 다른 줄에서 여러 번 반복될 때 쉘 스크립트를 사용하여 파일의 특정 줄 내용을 수정하는 방법

해당 줄의 텍스트가 다른 줄에서 여러 번 반복될 때 쉘 스크립트를 사용하여 파일의 특정 줄 내용을 수정하는 방법

해당 줄의 텍스트가 다른 줄에서 여러 번 반복되는 경우 쉘 스크립트를 사용하여 파일의 특정 줄 내용을 수정하려면 어떻게 해야 합니까? 예를 들어 내 파일에서는 다음과 같습니다.

##############################
[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다시 반전.

관련 정보