用于在字符串中查找3个或更多短划线的grep regex解决方案

2024-05-14 17:50:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试构建一个bash脚本,它将在mac上查找keychain文件夹,并在使用grep找到时将其删除。最具挑战性的是没有两个文件夹是相同的。例如C0955E7D-DCA1-542B-B506-72A054DET9FA。名称中都包含3个或更多破折号。不知道如何使用regex进行grep。在我的“~/Library/Keychain/目录中,我在想。。。在

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

我在想*应该是通配符,并查找任何数量的数字,它们之间至少包含3个破折号。在

我也愿意使用python(因为它是预装在mac上的),但这似乎太复杂了。在


Tags: 脚本文件夹名称bashmaclibrarygrepregex
3条回答

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

说明

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

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

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

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

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

相关问题 更多 >

    热门问题