Skip to main content
2 of 2
added 23 characters in body
humanityANDpeace
  • 15.2k
  • 13
  • 74
  • 114

The following code should do as desired.

searchword="tech"
(cat << EOF
tech -this is sample and ... 1.2 sample
bla bla bla test tech 1 one two
foo bar foo bar tech and [email protected] 0.1
bar bar bar foo foo tech 10.1.3
tech 7.5 and continue this line
sample_test one two tech 8.0
one two there tech 0.x *sample bla bla
www sample tech 1.3.x foo bar $foo #bar
foobar barbar bla bla tech 5.x
tech testtest 2.0.4x this is sample
EOF
) | grep $searchword |\
grep -o '\b[0-9x][0-9x]*\b\|\b[0-9][0-9]*\.[0-9x][0-9x]*\b\|\b[0-9][0-9]*\.[0-9][0-9]*\.[0-9x][0-9x]*\b' |\
sed "s/^/$searchword /"

will yield you

tech 1.2
tech 1
tech 0.1
tech 10.1.3
tech 7.5
tech 8.0
tech 0.x
tech 1.3.x
tech 5.x
tech 2.0.4x

at least with

  • bash GNU bash, version 4.4.5(1)-release
  • sed sed (GNU sed) 4.2.2
  • grep grep (GNU grep) 2.27

I'd be glad it this answer helped you, or else you would consider being more explicit and more explaining in your question

humanityANDpeace
  • 15.2k
  • 13
  • 74
  • 114