Grep por Tron - Um problema de 5 segundos

3

Eu tenho um problema com uma solução simples. Eu preciso grep Tron * .exe fora de

<li><a href="Tron%20v9.6.1%20(2016-10-03).exe"> Tron v9.6.1 (2016-10-03).exe</a></li>
<li><a href="Tron%20v9.6.1%20(2016-10-03).torrent"> Tron v9.6.1 (2016-10-03).torrent</a></li>
<li><a href="md5sums.txt"> md5sums.txt</a></li>
<li><a href="md5sums.txt.asc"> md5sums.txt.asc</a></li>
<li><a href="sha256sums.txt"> sha256sums.txt</a></li>
<li><a href="sha256sums.txt.asc"> sha256sums.txt.asc</a></li>

Preciso que isso funcione para a lista, mesmo que o texto altere o número ou a data da versão.

    
por Ben Stumpf 10.10.2016 / 17:16

1 resposta

9

grep com PCRE ( -P ), extraindo somente a parte correspondente ( -o ):

grep -Po '"\KTron[^"]*\.exe' file

No padrão Regex:

  • " corresponde a um literal " , \K descarta a correspondência

  • Tron corresponde ao literal Tron

  • [^"]* corresponde a zero ou mais caracteres que não são "

  • \.exe corresponde ao literal .exe

Exemplo:

$ cat file.txt
<li><a href="Tron%20v9.6.1%20(2016-10-03).exe"> Tron v9.6.1 (2016-10-03).exe</a></li>
<li><a href="Tron%20v9.6.1%20(2016-10-03).torrent"> Tron v9.6.1 (2016-10-03).torrent</a></li>
<li><a href="md5sums.txt"> md5sums.txt</a></li>
<li><a href="md5sums.txt.asc"> md5sums.txt.asc</a></li>
<li><a href="sha256sums.txt"> sha256sums.txt</a></li>
<li><a href="sha256sums.txt.asc"> sha256sums.txt.asc</a></li>

$ grep -Po '"\KTron[^"]*\.exe' file.txt
Tron%20v9.6.1%20(2016-10-03).exe
    
por heemayl 10.10.2016 / 17:20

Tags