両側にコロンがある任意の長さの英数字文字列のgrep

両側にコロンがある任意の長さの英数字文字列のgrep

両側にコロンを使用して1〜50文字(理想的には任意の長さで可能)の英数字文字列をgrepする方法 - 一般的な結果は、その文字列を含むすべての行です:shopping:。これまでに以下のコードがありますが(いくつかのバリエーションを試しました)、うまくいきません。

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

答え1

これを行うには、拡張正規表現を有効にする必要があります。

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

答え2

デフォルトの正規表現を使用すると、次のように書くことができます。

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

\{またはの逆)は標準的で移植可能であり、実際におよび対応するBREは通常およびで書かれています。ただし、これは標準的で移植可能であるため、この場合は正規表現をより読みやすくすることができるので、これを使用することをお勧めします。\+\?+?\{\{1,\}\{0,1\}grep -E

答え3

拡張正規表現を使用しているため、-Eオプションを使用する必要があります。

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

答え4

誰も言及していないので、使用することができますegrep。これはと同じであると理解していますgrep -E

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

関連情報