파일의 특정 단어를 대체하는 정수

파일의 특정 단어를 대체하는 정수

xyz.sh 파일이 있습니다

JAVA_OPTS="-Xmx3072M"  
RESOLVED_HEAP_SIZE="2048M"  
RESOLVED_OFF_HEAP_SIZE="256M" 

-Xmx3072M예상됨 - 로 바꾸고 싶지만 값이 항상 동일할 -Xmx4096M필요는 없으며 또는 일 수 있습니다 .JAVA_OPTS="-Xmx3072"-Xmx1234-Xmx5120

답변1

이 시도,

sed -e '/JAVA_OPTS/ s/".*"/"-Xmx4096M"/' test453

JAVA_OPTS="-Xmx4096M"  
RESOLVED_HEAP_SIZE="2048M"  
RESOLVED_OFF_HEAP_SIZE="256M"
  • 일치하는 항목 검색JAVA_OPTS
  • ".*"큰따옴표 사이의 모든 패턴을 대체합니다."-Xmx4096M"
  • 파일을 편집하려면 -e다음으로 바꾸십시오.-i

답변2

sed '/JAVA_OPTS/s/-Xmx[[:digit:]]\{1,\}[kKmMgG]\{0,1\}/-Xmx4G/'

-Xmx하나 이상의 십진수 뒤에 선택적인 k/K/m/M/g/G 접미사가 -Xmx4G포함된 줄은 JAVA_OPTS다른 최종 Java 옵션을 건드리지 않고 대체됩니다 .

관련 정보