grep regex解决方案,用于在字符串中查找3个或更多破折号

时间:2018-11-30 03:55:10

标签: python regex bash grep

我正在尝试构建一个bash脚本,该脚本将在Mac上查找钥匙串文件夹,并在使用grep找到该文件夹​​时将其删除。具有挑战性的部分是没有2个文件夹是一样的。一个示例是C0955E7D-DCA1-542B-B506-72A054DET9FA。它们的名称中均包含3个或更多破折号。不知道如何使用正则表达式对此进行grep。在我的〜/ Library / Keychain /目录中,我在想类似...

ls | grep "*-*-*-*"

我本来以为*将是通配符,并查找在它们之间至少包含三个破折号的任意数量的数字。

我也开始使用python(因为它已预先安装在macs上),但这似乎太复杂了。

3 个答案:

答案 0 :(得分:0)

您可以尝试(\w+-){3,}\w+

说明

\w+:单词字符1次或更多次
-:连字符
(\w+-){3,}:某些单词字符后跟连字符3次或更多次
\w+:单词字符1次或多次

答案 1 :(得分:0)

这将打印带有3个或更多破折号的所有目录名称

find . -type d -exec sh -c '[ $(echo {} | grep -o - | wc -l) -ge 3 ]' \; -print

答案 2 :(得分:0)

grep“。+-。+-。+-。+”在您的情况下会更准确。

. = any character
+ = one or more times (matches any character, one or more times)
(* = zero or more times)