我在以下文件夹中有一堆.xml文件:"C:\Users\Kavinda \Desktop\手册\XMLs\Output“
我希望在整个文件夹中搜索所有.png文件引用。例如,一个.xml文件具有以下内容:
<li class="list1-item clearer">
<div class="ie8fixer" />
<p class="step2-list1-nonmark-heading">The following image is an example.</p>
<div class="bigImage"><img src="../image/vl7ie02.png" alt="VL7IE02" class="figure-graphic--bigImage" />
</div>
</li>我需要的东西,将通过每个.xml文件,并选择名称的.png文件。因此,对于上面的例子,输出将是:
vl7ie02.png我已经尝试使用Notepad++搜索字符串".png",但是对于某些.xml文件,一行包含了大量信息,而png文件名出现在标记的末尾。因此,Notepad++不会在输出窗口中显示这一点--即使有匹配。然后,我必须找到文件和相关的行,并从那里抓取它。
我真的不想这么做,因为目录中有6000多个xml文件!
发布于 2018-09-15 14:44:07
使用以下Regex:
img.*?src=".*(?<="|\/)(\w+\.(?:png|jpg|jpeg|gif))"更详细的解释是在Regex101上。
img标记和src属性中。src属性内容总是包装在引号"之间。(?<="|\/)是一个积极的背景,它表明图像名称和扩展名必须在引号字符"或前斜杠/ (必须转义)之后。\w+\.将文件名与点匹配。如果你想要前任的话。文件名中的空格,使用.+。(?:png|jpg|jpeg|gif)是可能的扩展。如果您不关心它们,请使用\w+代替。(\w+\.(?:png|jpg|jpeg|gif))中用点和扩展名包装文件名。发布于 2018-09-15 11:52:07
使用grep -Eo "[^/]+\.png" *.xml
如果您正在使用windows,请参阅Windows环境下的Grep
https://stackoverflow.com/questions/52344156
复制相似问题