grep -P 'com\K\w+' 出力なし

grep -P 'com\K\w+' 出力なし

データを抽出したいさまざまなリンクを含むソースファイルをインターネットから保存しました。例えばhttps://blahblah.com/uniquetext

私はそれを使用しています

grep -oP 'com\K\w+' source.txt > list.txt

しかし、私は空のテキストファイルを取得します。私は何が間違っていましたか?このコマンドがどのように機能するのか、私が間違って理解したのでしょうか?

私の入力テキスト(ソースファイルであると仮定)は非常に汚れており、ほとんど読めません。違いがある場合は、.htmlを.txtに変換しました。

外観:

gs="evt">window.open('https://twitter.com/warrenarend', '_blank');</script></button><button dojoType="dijit.form.Button" type="button">26. patriotpariah<script type="dojo/method" event="onClick" args="evt">window.open('https://twitter.com/patriotpariah', '_blank');</script></button><button dojoType="dijit.form.Button" type="button">27. teutates1989<script type="dojo

私が望むもの:

twitter.com/patriotpariah
twitter.com/warrenarend

答え1

\w「単語」記号(文字、数字、アンダースコア)と一致しますが、例では次/com項目が一致しないため、:alnum:パターンは何も一致しません == 空の出力。

/パターンに追加し、何が起こるかを確認できます。

grep -oP 'com/\K\w+'

FYR-Pオプションは実験的であり、システムで予期しないより多くのタスクを実行できるため、他の方法でタスクを完了できます。

sed "/com/s/.*\/\(\w\+\).\?$/\1/" 

関連情報