我不是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
非常感谢!
答案 0 :(得分:2)
如果您真的想使用grep
,可以说:
grep -Po '(?<=font-family:).*?(?=")' filename
对于您的输入,它会返回:
HelveticaNeue
HelveticaNeue-Bold
HelveticaNeue-BoldItalic
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