2
在OS X中,有一个名为security
的命令行实用程序,用于访问钥匙串。它可以返回钥匙串中一个条目的密码,这正是我想要做的。当我运行security find-internet-password -ga an_entry | grep "password"
我得到以下输出,符合市场预期:为什么grep不能从安全工具的输出中提取?回声工作的可比较提取
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"
哪是荒谬的。
只是使用'-w'选项来'安全性'可能更简单;我一般认为生命太短,无法浪费时间去计算Perl正则表达式。 – chepner
@chepner虽然这个选项的作品,这个问题仍然很有趣 –
@ThomasAyoub,...是吗? “stderr不通过管道”并不完全是火箭科学,目前提出的这个问题不太可能出现在搜索结果中,因为有人用在stderr上产生该流的不同工具碰到同样的问题。 –