작은따옴표 안의 텍스트를 수정하는 방법은 무엇입니까?

작은따옴표 안의 텍스트를 수정하는 방법은 무엇입니까?

다음 줄이 포함된 파일이 있습니다.

전쟁{
    기본 이름 = '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

  • 작성을 마치고 종료합니다.

관련 정보