一个Perl或Gawk脚本,它返回一个关键字,前面的单词和后面的单词?

时间:2011-10-06 17:23:04

标签: perl search gawk

我需要一个简单的脚本在Windows中运行,搜索大型 xml文件中的关键字,然后返回它之前的单词,关键字和之后的单词。

例如: “我如何在上下文中提取关键字” 我想要: “

中提取关键字

我是一个有足够知识的新手,可以使用关键字和返回每个之前和之后,但我很难接受单个词我需要出去。

任何人都有任何聪明的想法?

2 个答案:

答案 0 :(得分:2)

这是一种方式:

#!/usr/bin/perl

use 5.12.0;
my $keyword = 'keywords';

while (<DATA>)
{
    say for /\b(\S+\s+\b\Q$keyword\E[[:punct:]]*\s+\S+)\b/g;
}

__END__
How can I extract keywords in context, even if there are many keywords to
extract? So many keywords, no idea how to deal with them.

答案 1 :(得分:0)

grep -o就足够了:

grep -Po '(\S+\s)?keywords(\s\S+)?' << END
How can I extract keywords in context
How can I extract keywords
keywords in context
END

返回

extract keywords in
extract keywords
keywords in