不输出第一个 grep 搜索词



所以我在一个文件中有以下内容:

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

相关内容

  • 没有找到相关文章

最新更新