#!/bin/bash

# ideone boilerplate - we can't write files in the home directory;
# so create a temporary directory for our files instead
t=$(mktemp -d -t ideone.XXXXXXXXXXXX) || exit
trap 'rm -rf "$t"' ERR EXIT
cd "$t"

mkdir -p A1/01_stjhs_lkk A1/02_stlkd_ooe A1/03_stoie_akwe A1/other \
        A2/01_stpw_awq A2/02_stoe_iwoq A2/03_stak_weri A2/different

for dir in ./*/*; do
   echo "xyz       f $dir" >"$dir"/04_random.log
done

for dd in */; do
    for dir in "$dd"/0[0-9]_st*/; do
        : nothing
    done
    # Adding /dev/null to force grep to print the file name
    grep -i 'xyz       f' "$dir"/04_*.log /dev/null
done