#!/bin/bash awk '{ while(/den/ && sub("den", "ten\n" ++a));; print }'
For eg first den will be replaced with ten then second den with ten and so on. No match. Some match: den again.
For eg first ten 1 will be replaced with ten then second ten 2 with ten and so on. No match. Some match: ten 3 again.