今天我被要求列出我们项目中的所有图像文件引用,以帮助删除/修复死引用。
源文件中的所有图像名称都括在简单引号或双引号('image.png'
或"image.png"
)中。
为了提取我想使用grep
,sed
其他类似的工具,但如此公平,我未能想出有效的东西。
我目前可以通过 greping 图像文件扩展名(.png
、.gif
等)列出包含图像名称的所有行,但这也带来了与我的搜索完全无关的行。我对 sed 的尝试不起作用,以防每行有几个字符串。
我可能可以自己过滤掉列表,但是嘿:这是 linux !所以必须有一个工具来完成这项工作。
你会怎么做?
您应该能够使用如下所示的内容提取文件名:
grep -Eo "['"][^'"]*.(gif|png)['"]"
选项-o
使grep
仅列出匹配项而不是整行。使用 tr
删除引号:
grep -Eo "['"][^'"]*.(gif|png)['"]" | tr -d ""'"