両側にコロンが付いた1〜50文字の英数字文字列(理想的には、任意の長さでも機能します)をgrepする方法-典型的な結果は、文字列を含むすべての行になります:shopping:。これまでのところ、私は以下のコードを持っています(私はそれにいくつかのバリエーションを試しました)、それは動作しません:
grep ':[[:alnum:]]{1,100}:' ~/x.txt
両側にコロンが付いた1〜50文字の英数字文字列(理想的には、任意の長さでも機能します)をgrepする方法-典型的な結果は、文字列を含むすべての行になります:shopping:。これまでのところ、私は以下のコードを持っています(私はそれにいくつかのバリエーションを試しました)、それは動作しません:
grep ':[[:alnum:]]{1,100}:' ~/x.txt
回答:
基本的な正規表現を使用すると、次のように記述できます。
grep ':[[:alnum:]]\{1,100\}:' ~/x.txt
なお、\{(とは対照的に、\+又は\?例えば)標準およびポータブルであり、実際のBRE当量+と?典型的で書かれている\{:\{1,\}および\{0,1\}。grep -Eただし、標準で移植性も高いので、そのような場合に、より読みやすい正規表現を作成するために使用することもできます。
誰もがそれを言及していないので、あなたはまた、使用することegrepに相当し、私はそれを理解しています、、、 grep -E。
egrep ':[[:alnum:]]{1,100}:' ~/x.txt
egrepEREでgrepを実行する歴史的なコマンドでした。grepとegrepの機能は、(かなり前に)-Eオプションを使用してgrepにマージされました。egrep現在は時代遅れ/非推奨と見なされています(ただし、一部の人々はまだ慣れているため、行きにくいと思われます)。
grepを含めることで、拡張正規表現機能を有効にする必要があり-Eます。