从源文件中提取字符串的最简单方法是什么?

时间:2012-10-12 08:00:16

标签: linux bash grep extract

我今天被要求列出我们项目中的所有图像文件引用,以帮助删除/修复死引用。

源文件中的所有图像名称都用简单或双引号括起来('image.png'"image.png")。

要提取那些我曾想过使用grepsed这样的其他工具,但这样公平,我没有想出一些有效的东西。

我目前可以通过点击图片文件扩展名(.png.gif等)来列出包含图片名称的所有行,但这也会带来与我的搜索完全无关的行。我对sed的尝试不起作用,以防每行有几个字符串。

我可能会自己过滤掉列表,但是嘿:这是linux!因此,必须有一个工具。

你会怎么做?

1 个答案:

答案 0 :(得分:2)

您应该可以使用以下内容提取文件名:

grep -Eo "['\"][^'\"]*\.(gif|png)['\"]"

选项-o会导致grep仅列出匹配而不是整行。使用tr删除引号:

grep -Eo "['\"][^'\"]*\.(gif|png)['\"]" | tr -d "\"'"