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


14

両側にコロンが付いた1〜50文字の英数字文字列(理想的には、任意の長さでも機能します)をgrepする方法-典型的な結果は、文字列を含むすべての行になります:shopping:。これまでのところ、私は以下のコードを持っています(私はそれにいくつかのバリエーションを試しました)、それは動作しません:

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

スイッチgrepを含めることで、拡張正規表現機能を有効にする必要があり-Eます。
slm

回答:


13

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

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

4

基本的な正規表現を使用すると、次のように記述できます。

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

なお、\{(とは対照的に、\+又は\?例えば)標準およびポータブルであり、実際のBRE当量+?典型的で書かれている\{\{1,\}および\{0,1\}grep -Eただし、標準で移植性も高いので、そのような場合に、より読みやすい正規表現を作成するために使用することもできます。


1

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

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

ありがとう!私は見出しに「理想的な」スクリプトを書いていないので、他の答えを正解にしました。また、答えをグーグルする人に間違った答えをコピー・ペーストさせたくありませんが、私はあなたのものを使います。:)

1
@TorThommesen-Qのタイトルが正しくない場合は編集できます。
slm

0

誰もがそれを言及していないので、あなたはまた、使用することegrepに相当し、私はそれを理解しています、、、 grep -E

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

1
egrepEREでgrepを実行する歴史的なコマンドでした。grepとegrepの機能は、(かなり前に)-Eオプションを使用してgrepにマージされました。egrep現在は時代遅れ/非推奨と見なされています(ただし、一部の人々はまだ慣れているため、行きにくいと思われます)。
ステファンシャゼル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.