データを抽出したいさまざまなリンクを含むソースファイルをインターネットから保存しました。例えば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/"