如何使用“grep”获取gpg密钥指纹值?

dev*_*per 3 grep regular-expression pgp

如果 的输出gpg --list-secret-keys --keyid-format=long

pub   rsa3072 2023-01-13 [SC] [expires: 2025-01-12]
  D8524A558964E86Cxxxx93111270xxxxxxxx7A74
uid           [ultimate] demo(demo) <demo>
sub   rsa3072 2023-01-13 [E] [expires: 2025-01-12]
Run Code Online (Sandbox Code Playgroud)

如何从输出中仅 grep“D8524A558964E86Cxxxx93111270xxxxxxxx7A74”?我正在使用Linux。

Sté*_*las 10

从手册页:

\n
\n

切勿在脚本或其他程序中使用此命令的输出。输出仅供人类使用,其格式可能会发生变化。--with-colons 选项以稳定的、机器可解析的格式发出输出,该格式供脚本和其他程序使用。

\n
\n
\n

--with-colons
\n打印由冒号分隔的关键列表。请注意,无论任何 --display-charset 设置如何,输出都将以 UTF-8 进行编码。当从脚本和其他程序调用 GnuPG 时,此格式非常有用,因为它很容易被机器解析。此格式的详细信息记录在文件 \xe2\x80\x98doc/DETAILS\xe2\x80\x99 中,该文件包含在 GnuPG 源代码发行版中。

\n
\n

例如,可以在那里doc/DETAILS找到最新的。

\n

所以:

\n
gpg --list-secret-keys --with-colons |\n  awk -F: \'$1 == "fpr" || $1 == "fp2" {print $10}\'\n
Run Code Online (Sandbox Code Playgroud)\n

将打印其中列出的所有钥匙的指纹。

\n

--keyid-format无关紧要,因为那是您想要的指纹)。

\n