gpt4 book ai didi

linux - 从错误中复制最后一个词并输入到下一个命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:42:39 25 4
gpt4 key购买 nike

有点模糊的标题,但基本上我需要做的是从这个错误消息中复制公钥:

W: GPG error: http://ppa.launchpad.net hardy Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EED4D034D81367B9

并将其用作脚本其余部分的值以修复错误。我查看了如何使用 Grep、awk、sed 和其他一些工具来执行此操作,但它们都涉及从文件读取输入,而不是从标准输出中读取内联。

如有任何帮助,我们将不胜感激!

最佳答案

您可以结合使用 bash 工具和 xargs 来实现这一点。假设您从命令中收到错误字符串,您可以使用 波浪号 (=~) 运算符将其通过管道传输到 bash 中的 regEx

.*\ ([[:alnum:]]+)$ 

即使用此 regEx 对字符串进行简单的 echo 您将获得所需的键值。在命令行运行以下命令

$ echo "W: GPG error: http://ppa.launchpad.net hardy Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EED4D034D81367B9" | while IFS= read -r line; do [[ $line =~ .*\ ([[:alnum:]]+)$ ]] && printf "%s\n" "${BASH_REMATCH[1]}"; done
EED4D034D81367B9

即形式

$ <command-returning-string> | while IFS= read -r line; do [[ $line =~ .*\ ([[:alnum:]]+)$ ]] && printf "%s\n" "${BASH_REMATCH[1]}"; done

现在正如您所说,您想将此 key 传递给管道中的另一个命令。现在 xargs 来拯救了。使用 xargs 中的 -I{} 标志,{} 成为从上一个命令返回的 key 的占位符,即 key 是现在出现在 {} 中,可以作为参数/输入传递给您的下一个命令作为

$ <command-returning-string> | <command-returning-key> | xargs -I{} <your-next-command> {}

关于linux - 从错误中复制最后一个词并输入到下一个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41000960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com