如何为这种情况编写Grep命令?

时间:2014-01-03 09:48:09

标签: linux grep command

我不是Grep家伙,请在这里提问以获取grep命令以快速解决此问题。

给出像这样的html文本,

<tr><td class="font_face" style="font-family:HelveticaNeue">HelveticaNeue</td><td class="iphone">3.0</td><td class="ipad">4.3</td></tr>
<tr><td class="font_face" style="font-family:HelveticaNeue-Bold">HelveticaNeue-Bold</td><td class="iphone">3.0</td><td class="ipad">4.3</td></tr>
<tr><td class="font_face" style="font-family:HelveticaNeue-BoldItalic">HelveticaNeue-BoldItalic</td><td class="iphone">3.0</td><td class="ipad">4.3</td></tr>

需要grep推荐才能得到像这些

的输出
HelveticaNeue 
HelveticaNeue-Bold 
HelveticaNeue-BoldItalic

非常感谢!

4 个答案:

答案 0 :(得分:2)

如果您真的想使用grep,可以说:

grep -Po '(?<=font-family:).*?(?=")' filename

对于您的输入,它会返回:

HelveticaNeue
HelveticaNeue-Bold
HelveticaNeue-BoldItalic

编辑:mentioned作为Kent,您也可以说:

grep -Po '(?<=font-family:)[^"]*' filename

答案 1 :(得分:0)

awk应该:

awk '{gsub(/<[^>]*>/,FS);print $1}' file
HelveticaNeue
HelveticaNeue-Bold
HelveticaNeue-BoldItalic

awk会删除<>之间的所有内容 它会提供HelveticaNeue 3.0 4.3,然后打印字段#1

答案 2 :(得分:0)

你也可以使用perl:

perl -lne 'print $1 if(/font-family:([^\"]*)\"/)' your_file

答案 3 :(得分:0)

假设您的数据包含在Test.html文件中

然后您可以使用以下命令:

 cat Test.html | awk  -F  '">' '{print $2}' | awk -F "</" '{print $1}'

输出:

HelveticaNeue
HelveticaNeue-Bold
HelveticaNeue-BoldItalic