Вы можете использовать это awk
:
cat srch.awk
BEGIN{RS=FS=""}
{
s=$0
k=0
while (n=index(s, kw)) {
k+=n
printf "%d ", k-1
s=substr(s, n+length(kw))
}
print ""
}
Теперь используйте его как:
awk -v kw='world' -f srch.awk test.txt
6
awk -v kw='o' -f srch.awk test.txt
4 7