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