使用shell脚本搜索单词并在该单词后导出35个字符?

时间:2012-08-15 08:38:43

标签: linux shell

我有一个文件input.txt,其中包含许多奇怪的字符,html标签和有用的资料。我希望在单词description之后显示35个字符,不包括奇怪的字符,如$$#$#@$#@***$#,并且在新文件output.txt中没有html标签。帮我。 提前完成。

我的最终目标是在描述之后找到单词描述并打印35个字符,其中不应包含html标签和奇怪的字符。可能吗?像这里:

<description>&lt;p&gt;&lt;img class="float_right"
 src="http://static3.businessinsider.com/image/502ab0036bb3f7147b00000f-400-300/dnu.jpg"
 border="0" alt="dnu" width="400" height="300" /&gt;&lt;/p&gt;&lt;p&gt;The lawn
 was filled with &lt;a class="hidden_link"
 href="http://www.businessinsider.com/blackboard/goldman-sachs"&gt;Goldman
 Sachs&lt;/a&gt; Group Inc. partners dressed in pink looking out on a pink sunset.

我想从以下开始:The lawn is filled with(再次跳过这些标记并继续)Group Inc. partners(35个字符。完毕!)然后停止并搜索其他说明!

1 个答案:

答案 0 :(得分:1)

您可以使用XPath选择HTML节点中的所有文本。在你的情况下,这应该工作:

xpath -q -e '//description//text()' input.txt

查询//description//text()的工作原理如下:

  • //description:向下钻取HTML文档,直到找到名为description
  • 的节点
  • //text():在此节点内向下钻取所有其他节点并选择其文本

根据您输出的数据:

The lawn was filled with 
Goldman Sachs
 Group Inc. partners dressed in pink looking out on a pink sunset.