繁体   English   中英

不输出第一个grep搜索词

[英]Don't output first grep search term

因此,我在文件中包含以下内容:

JAVA_OPTS="-Djavax.net.ssl.trustStore=/home/blah/blah.jks -Djavax.net.ssl.trustStorePassword=password"

我正在使用以下命令:

cat file.txt | grep -Eo "Store=[^ ]*.jks"

并得到

Store=/home/blah/blah.jks

我该怎么办:

/home/blah/blah.jks

改用sed ,然后即时编辑匹配项:

sed -rn 's/^.+Store=([^ ]*.jks).*$/\1/p' file.txt

-n选项禁止打印,替换后的p命令将其重新打开,但仅适用于匹配的行。 -r选项表示易于使用的正则表达式引擎。

顺便说说。 不要将cat引入这些Unix实用程序(grep,sed,tr,awk等)中。 他们都将文件名视为最后一个参数。 一个过程总是比两个过程更好。

您可以在perl扩展名中使用\\K

$ grep -oP 'Store=\K[^ ]*.jks' file.txt 
/home/blah/blah.jks

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM