Yeah, this is probably the best solution as it is an efficient command line tool and the solutions in the thread I linked are rather custom code. I always forget about seqkit but it is a super handy and efficient tool, swiss army knife for fasta/q files.
From the seqkit link:
# max mismatch: 1
$ cat t.fa \
| seqkit locate -p agc -m 1 \
| csvtk pretty -t
seqID patternName pattern strand start end matched
seq agc agc + 1 3 agc
seq agc agc + 7 9 agc
seq agc agc + 11 13 acc
seq agc agc - 8 10 agc
seq agc agc - 2 4 agc