Como copiar uma determinada linha do arquivo e adicionar um comando a ela?

0
#cat /etc/Symantec.conf
[Symantec Shared]
 BaseDir=/opt/symantec
 JAVA_HOME=/opt/symantec/java/jdk1.6.0_27/jre/bin

Eu preciso de um comando para copiar a linha /opt/symantec/java/jdk1.6.0_27/jre/bin do arquivo acima e insira java -version na frente dele. então ele fará o seguinte comando:

#/opt/symantec/java/jdk1.6.0_27/jre/bin/java -version
    
por tester787 03.04.2018 / 22:42

4 respostas

1
echo $(grep -oP '^\s*JAVA_HOME=\K.*' /etc/Symantec.conf)"/java -version"
    /opt/symantec/java/jdk1.6.0_27/jre/bin/java -version
    
por 03.04.2018 / 23:00
1

Possível solução:

# $(sed -n 3p tt | sed 's/JAVA_HOME=//')/java -version

sed -n Np # print line #N
sed 's//' # replace
    
por 03.04.2018 / 22:53
1

tente:      grep -Po "JAVA_HOME=\K.*" /etc/Symantec.conf / java -version

grep -P permite usar um lookbehind no regex usando '\ K' e -o retorna apenas a parte correspondente do regex

cercando o grep em backticks o substitui pelo resultado

    
por 03.04.2018 / 23:00
-1

Outra solução:

$ printf "$(grep JAVA_HOME /etc/Symantec.conf  | cut -d= -f2)/java --version\n"
/opt/symantec/java/jdk1.6.0_27/jre/bin/java --version

Se você quiser imediatamente executar este comando:

$(printf "$(grep JAVA_HOME /etc/Symantec.conf  | cut -d= -f2)/java --version\n")
    
por 03.04.2018 / 23:09