Grep expression

im trying to find the best way to match an expression using grep.

input file is

<html>word word word word.</a>
<html>word word word word word word .</a>
<html>word word word word word word word word .</a>
<html>word word word word word word word word word word word word word word word word word .</a>

i want the output to be in format word........word.
so output will be

word word word word.
word word word word word word .
word word word word word word word word .
word word word word word word word word word word word word word word word word word .

i have

grep -Po -e '(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+\.)'  input

but above code wont give me desired output.
can anyone help?

I don't know if you can do it with a single grep and a perl-like "look ahead" / "look behind" match. You can do it with two grep s, though (or use perl or awk or similar):

grep -o "[>].*[<]" file | grep -o "[^<>]*"
word word word word.
word word word word word word .
word word word word word word word word .
word word word word word word word word word word word word word word word word word .
1 Like

Thank you.
brilliant work.

With sed

sed 's/^[^>]*>//; s/<[^<]*$//' input
$ grep -o "[^>]*\." file
word word word word.
word word word word word word .
word word word word word word word word .
word word word word word word word word word word word word word word word word word .