使用grep regex解析文本从文件中的多行文本中提取文本

时间:2012-08-07 17:11:15

标签: regex linux grep

我在文件中有一段文字:

<tr bgcolor="#F9F9F9">
     <td align="left">8/7/2012 11:23:42 AM</td>
     <td align="left"><em>Here is the text I want to parse out</em></td>
     <td class="ra">9.00</td>
     <td class="ra">297.00</td>
     <td class="ra">0.00</td>
     <td class="ra">0.00</td>
     <td class="ra">$0.00</td>
     <td class="ra">$0.50</td>
     <td class="ra"></td>
 </tr>

使用grep我想结果是

以下是我要解析的文字

现在处理代码

cat file.txt | grep -m 1 -oP '<em>[^</em>]*'

但这不起作用...感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

正确的正则表达式为(?<=<em>).*?(?=</em>)

所以,试试:

grep -m 1 -oP '(?<=<em>).*?(?=</em>)' file.txt