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