Neste caso em particular, onde os nomes dos seus arquivos não contêm nenhum espaço em branco ou outros caracteres estranhos, você pode usar ls e canalizá-lo através de sort :
$ ls -d -- *.SC* | sort -t. -k2
XYZ38390.SC00.Statue_WKP
ABC38388.SC01.StatueGrade_MKP
ABC38388.SC02.Statue_GKP
DEF38389.SC03.Statue_HKP
O -t define o delimitador de campo e o -k2 diz sort para classificar com base na parte da linha que começa com o campo 2 nd (use -k2,2 para o segundo campo somente ).
Para casos mais complexos, você poderia imprimir cada nome de arquivo seguido pelo caractere NULL ( ), então canalizar para GNU sort-z usando sua opção tr para dizer a ele ler linhas delimitadas por NULL e, finalmente , use para alterar o %code% de volta para %code% : \n
printf '%s$ ls -d -- *.SC* | sort -t. -k2
XYZ38390.SC00.Statue_WKP
ABC38388.SC01.StatueGrade_MKP
ABC38388.SC02.Statue_GKP
DEF38389.SC03.Statue_HKP
' *SC* | sort -zt. -k2 | tr 'printf '%s%pre%' *SC* | sort -zt. -k2 | tr '%pre%' '\n'
' '\n'