regex - 为什么 grep 不从安全实用程序的输出中提取?从 echo 作品中进行比较提取

标签 regex bash macos grep keychain

在 OS X 中,有一个名为 security 的命令行实用程序它旨在访问钥匙串(keychain)。它可以返回钥匙串(keychain)中条目的密码,这就是我想要做的。当我运行security find-internet-password -ga an_entry | grep "password"时正如预期的那样,我得到以下输出:

password: "apassword123"

我想提取引号之间的文本。 grep ,具体来说pcregrep ,应该可以工作,但没有:

echo 'password: "apassword123"' | pcregrep -o '^password:\s"(?!_)\K[^"]+'

返回:

apassword123

正如预期的那样,但是:

security find-internet-password -ga anentry | pcregrep -o '^password:\s"(?!_)\K[^"]+'

返回:

password: "apassword123"

这是荒谬的。

最佳答案

您的输出实际上并未通过 grep,因为它位于 stderr 上。您应该能够通过将 stderr 重定向到 stdout 来做到这一点,例如

security find-internet-password -ga anentry 2>&1 | pcregrep -o '^password:\s"(?!_)\K[^"]+'

关于regex - 为什么 grep 不从安全实用程序的输出中提取?从 echo 作品中进行比较提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37284278/

相关文章:

regex - 整数值的 MongoDB 正则表达式搜索

bash - 将文件随机传递给程序

linux - `echo` (shell bash) 发送整数值,而不仅仅是字符和字符串。是否可以?

objective-c - 了解应用程序在 cocoa mac OSX 中是否处于非事件状态的最佳方法?

java - 无法将 X.509 CN 与 Java 正则表达式匹配

php - 如何从错误日志文件中获取每个错误?

bash - Perl 在一个大文本文件中进行多项搜索和替换操作

macos - 找不到 pig-core-h2.jar。执行 'ant -Dhadoopversion=23 jar' ,然后重试

macos - Mac 上的文件扩展名图标

php - 正则表达式模式匹配