簡體   English   中英

grep regex解決方案,用於在字符串中查找3個或更多破折號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM