[英]grep regex solution for finding 3 or more dashes in a string
我正在嘗試構建一個bash腳本,該腳本將在mac上查找keychain文件夾,並在使用grep找到該腳本時將其刪除。 具有挑戰性的部分是沒有2個文件夾是一樣的。 一個示例是C0955E7D-DCA1-542B-B506-72A054DET9FA。 它們的名稱中均包含3個或更多破折號。 不知道如何使用正則表達式對此進行grep。 在我的〜/ Library / Keychain /目錄中,我在想類似...
ls | grep "*-*-*-*"
我當時以為*將是通配符,並查找任意數量的數字,它們之間至少包含3個破折號。
我也開放使用python(因為它已預裝在macs上),但這似乎太復雜了。
您可以嘗試(\\w+-){3,}\\w+
說明 :
\\w+
:單詞字符1次或多次
-
:連字符
(\\w+-){3,}
:某些單詞字符后跟連字符3次或更多次
\\w+
:單詞字符1次或多次
這將打印所有帶有3個或更多破折號的目錄名稱
find . -type d -exec sh -c '[ $(echo {} | grep -o - | wc -l) -ge 3 ]' \; -print
grep“。+-。+-。+-。+”在您的情況下會更准確。
. = any character
+ = one or more times (matches any character, one or more times)
(* = zero or more times)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.