#cat /etc/Symantec.conf
[Symantec Shared]
BaseDir=/opt/symantec
JAVA_HOME=/opt/symantec/java/jdk1.6.0_27/jre/bin
/opt/symantec/java/jdk1.6.0_27/jre/bin
我需要一个命令来复制上述文件中的行,然后插入java -version
到它的前面。所以它会执行以下命令:
#/opt/symantec/java/jdk1.6.0_27/jre/bin/java -version
答案1
echo $(grep -oP '^\s*JAVA_HOME=\K.*' /etc/Symantec.conf)"/java -version"
/opt/symantec/java/jdk1.6.0_27/jre/bin/java -version
答案2
可能的解决方案:
# $(sed -n 3p tt | sed 's/JAVA_HOME=//')/java -version
sed -n Np # print line #N
sed 's//' # replace
答案3
尝试:
grep -Po "JAVA_HOME=\K.*" /etc/Symantec.conf
/java -版本
grep -P 允许使用 '\K' 在正则表达式中使用后向查找,并且 -o 仅返回正则表达式的匹配部分
用反引号将 grep 括起来,用其结果替换它
答案4
另一个解决方案:
$ printf "$(grep JAVA_HOME /etc/Symantec.conf | cut -d= -f2)/java --version\n"
/opt/symantec/java/jdk1.6.0_27/jre/bin/java --version
如果你想立即跑步这个命令:
$(printf "$(grep JAVA_HOME /etc/Symantec.conf | cut -d= -f2)/java --version\n")