我今天被要求列出我们项目中的所有图像文件引用,以帮助删除/修复无效引用。
我们在源文件中的所有图像名称都用单引号或双引号括起来('image.png'
或 "image.png"
)。
要提取那些我想使用 grep
、sed
和其他类似的工具,但很公平,我没能想出有效的方法。
我目前可以通过搜索图像文件扩展名(.png
、.gif
等)列出所有包含图像名称的行,但这也会完全显示行与我的搜索无关。如果每行有多个字符串,我对 sed 的尝试不起作用。
我可能可以自己过滤掉列表,但是嘿:这是 linux!所以必须有一个工具来完成这项工作。
你会怎么做?
最佳答案
你应该能够用这样的东西提取文件名:
grep -Eo "['\"][^'\"]*\.(gif|png)['\"]"
选项 -o
使 grep
只列出匹配项而不是整行。使用 tr
删除引号:
grep -Eo "['\"][^'\"]*\.(gif|png)['\"]" | tr -d "\"'"
关于linux - 从源文件中提取字符串的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12854667/