在否定匹配上打印单行
Print single line on negative match
我正在尝试识别没有匹配我计划的签名或根本没有签名的 rpm 文件。我只想在否定匹配上打印 rpm 的名称。下面的示例和理想输出(本示例中我的签名是 123456):
/a/folder/rpm_valid_signature.rpm:
Header V4 RSA/SHA1 Signature, key ID 123456: OK
Header SHA1 digest: OK (blah)
V4 RSA/SHA1 Signature, key ID 123456: OK
MD5 digest: OK (blah)
/a/folder/rpm_invalid_signature.rpm:
Header V4 RSA/SHA1 Signature, key ID 000000: OK
Header SHA1 digest: OK (blah)
V4 RSA/SHA1 Signature, key ID 000000: OK
MD5 digest: OK (blah)
/a/folder/rpm_unsigned_signature.rpm:
RSA sha1 (MD5) (PGP) md5 NOT OK (MISSING KEYS: PGP#654321)
理想情况下,输出应列出无效匹配项,因此:/a/folder/rpm_invalid_signature.rpm
(仅此而已)。我将在查找命令中使用它,并将脚本指向包含大约 2k rpm 文件(未签名或使用无效密钥签名)的文件夹。
希望这是有道理的,感觉就像是 awk 或 sed 的工作,但由于文件中的重复而变得更加复杂。
signature=' key ID 123456:' # or whatever should match
find /a/folder -type f -name '*.rpm' -exec grep -L "$signature" '{}' +
我正在尝试识别没有匹配我计划的签名或根本没有签名的 rpm 文件。我只想在否定匹配上打印 rpm 的名称。下面的示例和理想输出(本示例中我的签名是 123456):
/a/folder/rpm_valid_signature.rpm:
Header V4 RSA/SHA1 Signature, key ID 123456: OK
Header SHA1 digest: OK (blah)
V4 RSA/SHA1 Signature, key ID 123456: OK
MD5 digest: OK (blah)
/a/folder/rpm_invalid_signature.rpm:
Header V4 RSA/SHA1 Signature, key ID 000000: OK
Header SHA1 digest: OK (blah)
V4 RSA/SHA1 Signature, key ID 000000: OK
MD5 digest: OK (blah)
/a/folder/rpm_unsigned_signature.rpm:
RSA sha1 (MD5) (PGP) md5 NOT OK (MISSING KEYS: PGP#654321)
理想情况下,输出应列出无效匹配项,因此:/a/folder/rpm_invalid_signature.rpm
(仅此而已)。我将在查找命令中使用它,并将脚本指向包含大约 2k rpm 文件(未签名或使用无效密钥签名)的文件夹。
希望这是有道理的,感觉就像是 awk 或 sed 的工作,但由于文件中的重复而变得更加复杂。
signature=' key ID 123456:' # or whatever should match
find /a/folder -type f -name '*.rpm' -exec grep -L "$signature" '{}' +