Bash

grep 用於任意長度的字母數字字元串,每邊都有一個冒號

  • November 19, 2015

你如何 grep 一個 1 到 50 個字元的字母數字字元串(理想情況下,任何長度都可以),每邊都有一個冒號——典型的結果是包含字元串的所有行:shopping:。到目前為止,我得到了下面的程式碼(我已經嘗試了一些變體),但它不起作用:

grep ':[[:alnum:]]{1,100}:' ~/x.txt

您需要為此啟用擴展正則表達式:

grep -E ':[[:alnum:]]+:' ~/x.txt

使用基本的正則表達式,你可以這樣寫:

grep ':[[:alnum:]]\{1,100\}:' ~/x.txt

請注意,\{(相對於\+\?例如)是標準的和可移植的,實際上 BRE 的+and等價物?通常用\{:\{1,\}\{0,1\}. grep -E不過它也是標準且可移植的,因此您不妨使用它,因為它可以在這些情況下使正則表達式更具可讀性。

引用自:https://unix.stackexchange.com/questions/89799