Grep for Tron - 一个 5 秒的问题

Ben*_*mpf 3 grep

我有一个简单的解决方案的问题。我需要 grep Tron*.exe 出来

<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>
Run Code Online (Sandbox Code Playgroud)

即使文本更改了版本号或日期,我也需要它来为列表工作。

hee*_*ayl 9

grep使用 PCRE ( -P),仅提取匹配部分 ( -o):

grep -Po '"\KTron[^"]*\.exe' file
Run Code Online (Sandbox Code Playgroud)

在正则表达式模式中:

  • "匹配文字"\K丢弃匹配

  • Tron 匹配文字 Tron

  • [^"]* 匹配零个或多个不属于的字符 "

  • \.exe 匹配文字 .exe

例子:

$ 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
Run Code Online (Sandbox Code Playgroud)