You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用awk修改脚本提取JKS文件证书别名与有效期并格式化输出

提取JKS证书别名与有效期并格式化输出

我帮你调整了脚本,用awk来处理keytool的输出,完美实现你要的TAB分隔格式,别名对应的多个证书会自动用空字符串填充别名位置来对齐。直接用下面的命令就行:

for f in *.jks; do
  if [ -f "$f" ]; then
    # 如果你JKS有密码,把-storepass ''改成你的密码,比如-storepass 123456
    keytool -list -v -keystore "$f" -storepass '' 2>/dev/null | awk '
      # 捕获别名名称,存到变量里
      /Alias name:/ { 
        alias = substr($0, 13);  # 跳过"Alias name: "这12个字符
        next 
      }
      # 处理有效期行,拆分出起止日期
      /Valid from:/ {
        # 用分隔符拆分字符串,拿到生效和过期日期
        split($0, date_parts, /Valid from: | until: /)
        # 用TAB分隔输出,后续同一别名的证书自动留空别名字段
        printf "%s\t%s\t%s\n", (alias ? alias : ""), date_parts[2], date_parts[3]
        alias = ""  # 重置别名,确保下一条证书输出空别名
      }
    '
  fi
done

几点说明:

  • 我把原来的echo "" |换成了-storepass '',这样不用交互式输入密码(如果你的JKS没设密码的话),同时把错误输出(2>/dev/null)丢掉,避免无关信息干扰结果
  • 循环只针对.jks后缀的文件,比原来的*更精准,不会处理目录里的非证书文件
  • 如果你的JKS设置了密码,只需要把-storepass ''改成实际的密码字符串就行,比如-storepass mySecurePass123

内容的提问来源于stack exchange,提问作者Samuel Rodriguez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:20:22