Nenhuma saída do grep -P 'com \ K \ w +'

0

Eu tenho um arquivo de origem salvo na Internet que tem vários links dos quais eu quero extrair dados. Por exemplo https://blahblah.com/uniquetext

Estou usando

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

mas acabei de receber um arquivo de texto vazio. O que estou fazendo errado exatamente? Eu entendi mal como o comando funciona?

Meu texto de entrada (o arquivo de origem O assume) é muito confuso e praticamente ilegível, é um .html convertido para .txt, se isso faz diferença.

O que parece:

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

O que eu quero:

twitter.com/patriotpariah
twitter.com/warrenarend
…
    
por ro shan 22.11.2014 / 20:44

1 resposta

1

\w combina símbolos "palavra" (letras, dígitos e sublinhados), mas no seu exemplo há / após com , que não é :alnum: , então seu padrão não corresponde a nada == saída vazia.

Você pode adicionar / ao padrão e ver o que aconteceu:

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

A opção FYR -P é experimental e pode fazer o que não é esperado em mais sistemas, portanto, você pode realizar sua tarefa de outra forma:

sed "/com/s/.*\/\(\w\+\).\?$//" 
    
por 22.11.2014 / 20:54