set -euo pipefail
export LC_ALL=C
grep_work=$(mktemp -d "${TMPDIR:-/tmp}/grep-example.XXXXXX")
trap 'rm -rf -- "$grep_work"' EXIT
cd "$grep_work"
mkdir -p data/tree
mkdir -p data/tree/cache
mkdir -p data/tree/sub
cat > data/tree/a.txt <<'GRP_INPUT_1'
target alpha
quiet
GRP_INPUT_1
cat > data/tree/b.tmp <<'GRP_INPUT_2'
target cache
GRP_INPUT_2
cat > data/tree/sub/c.txt <<'GRP_INPUT_3'
target gamma
GRP_INPUT_3
cat > data/tree/cache/d.txt <<'GRP_INPUT_4'
target saved
GRP_INPUT_4

grep -rl --include='*.txt' 'target' data/tree | sort
