Сценарий Perl или Gawk, который возвращает Ключевое слово, слово до и слово после?


Мне нужен простой скрипт для запуска в Windows, который ищетБольшие xml-файлы для ключевого слова, а затем возвращает слово до него, ключевое слово и слово после.

Например: "Как я могу извлечь ключевые слова в контексте" Я хочу: "извлечь ключевые слова в"

Я новичок с достаточным количеством знаний, чтобы вернуть каждую строку с ключевым словом, а также строки до и после, но я в тупике на получение отдельных слов, которые мне нужны из.

У кого-нибудь есть умные идеи?

2 3

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.

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