如何从文件中复制特定行并向其添加命令?

如何从文件中复制特定行并向其添加命令?
#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")

相关内容