Em bash (e ksh também, se bem me lembro) a expansão de parâmetro permite substrings no formato $ {param: offset: length} . Experimente o seguinte, e você verá como funciona: -
fname=axheMyfile.txt
echo ${fname:0:4}
Existem outras expansões que permitem a extração de substring baseada em pesquisa, por exemplo, ${fname%.*} ou ${fname%%.*} removerá o .txt (haveria uma diferença se houvesse mais de um ponto em o nome).