【发布时间】:2019-07-09 12:43:33
【问题描述】:
我有一个脚本可以检查 macOS 上的证书身份。
security find-identity -v | grep my-cert.test.com
结果是:
1) 13DB7FSDF188E2C4454KK33E5E0A7B4LK6714658 "my-cert.test.com"
2) 5L56971E29DFA20LHD5E2CEA9DF6J7C46C2D0FD5 "my-cert.test.com"
3) JS34KL78LG620CJKMDFBV5K1K56MNCL9M6SD61L "my-cert.test.com"`
使用awk 提取身份
security find-identity -v | grep my-cert.test.com | awk '{ print $2}’
结果是:
13DB7FSDF188E2C4454KK33E5E0A7B4LK6714658
5L56971E29DFA20LHD5E2CEA9DF6J7C46C2D0FD5
JS34KL78LG620CJKMDFBV5K1K56MNCL9M6SD61L
这意味着我有 3 个证书,并且使用 awk 我已将其余证书分开,只是在多个结果之间使用空格提取身份。现在我想将上面的grep 结果设置为一个变量。如果grep结果为3行,如上,将它们设置在不同的变量中。我知道我可以使用 var=$(...) 将其放入单个变量中,但我希望将结果分开。
例子:
ONE=13DB7FSDF188E2C4454KK33E5E0A7B4LK6714658
TWO=5L56971E29DFA20LHD5E2CEA9DF6J7C46C2D0FD5
THREE=JS34KL78LG620CJKMDFBV5K1K56MNCL9M6SD61I4
如果有更多,请继续。
我需要这个,以便我可以在后续脚本中使用这些变量。 grep 输出可以是任意数量的行,1 或更多。
【问题讨论】:
-
如果您需要单独处理每个值,也可以使用
xargs。
标签: bash macos shell awk command-line