다음 줄이 포함된 파일이 있습니다.
전쟁{ 기본 이름 = 'myapp' 버전='1.0.2' }
다음과 같은 변수도 있습니다.
variable=b123
버전 번호에 $variable 값을 추가하도록 파일을 편집하고 싶으므로 결과는 다음과 같습니다.
전쟁{ 기본 이름 = 'myapp' 버전='1.0.2_b123' }
스크립트를 통해 어떻게 이를 달성할 수 있습니까 bash
?
답변1
간단할 수 있나요 sed
?
$ var=_b123
$ sed -Ee "/version/s/'(.*)'/'\1$var'/" file
war {
baseName = 'myApp'
version = '1.0.2_b123'
}
( /version/
줄에 문자열이 포함되어 있는지 확인하고, 문자열이 있으면 작은따옴표 안의 문자열을 s
동일한 문자열( (...)
캡처, \1
복원)과 변수의 텍스트로 바꿉니다. 여기서는 필요한 모든 내용이 포함되어 있으므로 인용은 문제가 되지 않습니다. 큰따옴표 안에 있으면 안전합니다.)
답변2
vim을 좋아한다면 다음과 같이 할 수 있습니다:
vim +/version +"norm 2f'i_b123" +x file
그러면 파일이 열리고 다음 세 가지 명령이 실행됩니다.
"version"이 포함된 첫 번째 줄로 이동
일반 모드 진입, 초 입력
'
, 삽입 모드 진입, 삽입_b123
작성을 마치고 종료합니다.