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
1つ以上の10進数の後にオプションのk / K / m / M / g / Gサフィックスを-Xmx4G
含む行は、他の最終JAVA_OPTS
Javaオプションに触れることなく置き換えられます。