使用正则表达式提取grep行的一部分
我使用以下命令获取java.home路径使用正则表达式提取grep行的一部分,grep,Grep,我使用以下命令获取java.home路径 java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home' 上面的命令返回 我如何让它只返回“/usr/lib/jvm/java-11-openjdk-amd64”只需使用awk删除最后一个字段: java -XshowSettings:properties -version 2>&1 >/dev/null | grep
java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'
上面的命令返回
我如何让它只返回“/usr/lib/jvm/java-11-openjdk-amd64”只需使用awk删除最后一个字段:
java -XshowSettings:properties -version 2>&1 >/dev/null | grep 'java.home' | awk '{print $NF}'
或者再短一点:
java -XshowSettings:properties -version 2>&1 | awk '/java.home/ {print $NF}'
只需使用awk剪切最后一个字段:
java -XshowSettings:properties -version 2>&1 >/dev/null | grep 'java.home' | awk '{print $NF}'
或者再短一点:
java -XshowSettings:properties -version 2>&1 | awk '/java.home/ {print $NF}'
grep-oP'java\.home\s*=\s*\K.+'
如果在grep
中实现Perl正则表达式,@WiktorStribiżew的建议很好。否则,您可以使用grep'java.home'|grep-o'[^]*$”
grep-oP'java\.home\s*=\s*\K.+“
如果在grep
中实现Perl正则表达式,那么@WiktorStribiżew的建议很好。否则,您可以使用grep'java.home'|grep-o'[^]*$'
我建议添加-F'='
来解决路径中的空格问题。是的,它也可以使用:awk-F'=''/java.home/{print$2}'
我建议添加-F'='
来解决路径中的空格问题。是的,它也有效:awk-F'=''/java.home/{print$2}'