我有一个文件:foo
文件有一行:
JVMDATA="$(${TIMEOUT} sudo /usr/lib/jvm/jdk1.8.0_92/bin/java -jar ${JVMINSPECTOR} ${PID} 2>&1)"
我想将/usr/lib/jvm/jdk1.8.0_92/bin/java替换为:
JAVA_HOME/bin/java
我该怎么做?
答案 0 :(得分:0)
做到这一点的一种方法是:
sed -e 's|/usr/lib/jvm/jdk1.8.0_92/bin/java|JAVA_HOME/bin/java|' original.txt > new.txt
cp original.txt original.txt.sav
mv new.txt original.txt
这使用sed模式替换s / old / new /。 通常,使用斜杠是很痛苦的,因为您需要将其转义。 在我的系统上,sed允许竖线图案定界符,以便使其更具可读性。 我怀疑您打算将其更改为 $ JAVA_HOME ... (注意前导美元符号)。
为了完整起见,这是使用更常见的斜杠模式定界符的版本:
sed -e 's/\/usr\/lib\/jvm\/jdk1.8.0_92\/bin\/java/JAVA_HOME\/bin\/java/' original.txt > new.txt