我想解析一个密钥库文件,只获取“Alias name:”的值和“until:”旁边的到期日期。任何带有awk / sed的东西都可以工作。
已尝试以下2个命令来提供值。但我希望它在一个单一的命令
line=`keytool -list -v -keystore nonprod_truststore.jks | grep -e "Alias name" | awk -F'Alias name:' '{print $2}'`
line2=`keytool -list -v -keystore nonprod_truststore.jks | grep -e "until:" | awk -F'until:' '{print $2}'`
输入密钥库文件内容示例:
Alias name: Vaerikeysamplename004
Creation date: Mar 25, 2004
Entry type: trustedCertEntry
Owner: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 1 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
Issuer: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 1 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
Serial number: 1234jeyjfffdfd
Valid from: Sun May 17 20:00:00 EDT 1998 until: Tue Aug 01 19:59:59 EDT 2028
Certificate fingerprints:
MD5: DB:23:3D:F9:99:FA:4B:33:95:ee:44:73:5E:7D:41:83
SHA1: 27:3E:ss:24:57:FD:C4:F9:0C:55:E8:2B:56:16:ff:62:F5:32:E5:47
SHA256: 34:1D:E9:8B:13::6E:C6:5B:9A:51:CE:6E:D0:67:D0:0E:C7:CE:9B:7F
Signature algorithm name: RSASHASAM
Subject Public Key Algorithm: 1024-bit RSA key
Version: 1
预期输出
Vaerikeysamplename004 Tue Aug 01 19:59:59 EDT 2028
4条答案
按热度按时间gtlvzcf81#
使用任何awk:
ecfdbz9o2#
使用您所展示的示例,请尝试遵循GNU
awk
。使用GNU
awk
编写并测试,使用其RS
和RT
功能。68de4m5k3#
我们使用
:
(colon-space)作为字段分隔符。当第一个字段是Alias name
时,我们将第二个字段存储在变量a
中。当一行匹配space-until
-colon-space时,我们打印变量a
和最后一个字段。nkoocmlb4#
这可能对你有用(GNU sed):
复制一个包含
Alias name:
的行,并向其追加另一个包含until:
的行。删除除最后一行以外的所有行,然后交换到副本并删除不需要的文本,并打印结果。
注:替换命令上的
m
标志允许多行输入。