Substituir inteiros de palavras específicas de um arquivo

0

Estou tendo um arquivo xyz.sh

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

Esperado - quero substituir -Xmx3072M por -Xmx4096M , mas não é obrigatório que o valor de JAVA_OPTS="-Xmx3072" seja sempre o mesmo que pode ser -Xmx1234 ou -Xmx5120 .

    
por Shubham Jain 07.08.2018 / 09:44

2 respostas

0

Tente isso,

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

JAVA_OPTS="-Xmx4096M"  
RESOLVED_HEAP_SIZE="2048M"  
RESOLVED_OFF_HEAP_SIZE="256M"
  • pesquise a correspondência JAVA_OPTS
  • ".*" irá substituir qualquer padrão entre aspas duplas com "-Xmx4096M"
  • se você quiser editar o arquivo, substitua -e por -i
por 07.08.2018 / 09:48
0
sed '/JAVA_OPTS/s/-Xmx[[:digit:]]\{1,\}[kKmMgG]\{0,1\}/-Xmx4G/'

Substituir -Xmx seguido por um ou mais dígitos decimais seguidos por um sufixo opcional k / K / m / M / g / G com -Xmx4G nas linhas que contêm JAVA_OPTS sem tocar em nenhuma outra opção eventual do java.

    
por 07.08.2018 / 12:36