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/" 

관련 정보