큰따옴표로 묶인 문자열에 큰따옴표 사용(sed의 경우)

큰따옴표로 묶인 문자열에 큰따옴표 사용(sed의 경우)

설치 스크립트에 추가 기능을 추가하고 업그레이드할 다른 파일을 편집하기로 결정했습니다. 이를 달성하려면 Linux에서 다음 명령을 사용하여 유효한 sed 명령을 가져와야 합니다.

sed -i "s/TM_JAVA_MEM_MIN="4096M"/TM_JAVA_MEM_MIN="5096M"/g" /tmp/conf/start_tm_console

컨텍스트 sed 버전 세부정보:

sed --version
sed (GNU sed) 4.2.2

내가 가진 문제는 물론 ""4096M과 5096M 정도의 값을 사용하는 것입니다. Appends 를 무시하도록 sed 명령을 완료하는 방법을 잘 모르는 ""사람이 있습니까?

활발한 연구 중입니다.

내가 찾은 것은 다음과 같습니다. 물론 작동하지 않습니다.

sed -i "s/TM_JAVA_MEM_MIN=[\"]4096M[\"]/TM_JAVA_MEM_MIN=[\"]5096M[\"]/g" /tmp/conf/start_tm_console

sed -i 's~TM_JAVA_MEM_MIN="4096M"~TM_JAVA_MEM_MIN="5096M"~g' /tmp/conf/start_tm_console

편집하다:

아래는 파일의 일부 내용입니다. 위 줄은 파일에 한 번만 나타납니다.

#
# This value must be a multiple of 1024 greater than 1MB. Append the letter k or
# K to indicate kilobytes, or m or M to indicate megabytes. The default value is
# 2MB.
#
[ -z "${TM_JAVA_MEM_MIN}" ] && TM_JAVA_MEM_MIN="4096M"

#
# Specify the maximum size, in bytes, of the memory allocation pool. This value
# must a multiple of 1024 greater than 2MB. Append the letter k or K to indicate
# kilobytes, or m or M to indicate megabytes. The default value is 64MB.
#
[ -z "${TM_JAVA_MEM_MAX}" ] && TM_JAVA_MEM_MAX="6144M"

답변1

감사합니다!

sed -i 's~TM_JAVA_MEM_MIN="4096M"~TM_JAVA_MEM_MIN="5096M"~g' /tmp/conf/start_tm_console

이것이 실제로 작동하는지 확인할 수 있습니다. 프로덕션에서 원본 파일에 cat을 사용하고 있지만 변경 사항을 볼 수 없습니다. ;피!

관련 정보