Você pode tentar esta versão do seu script até agora
#!/bin/ksh
ls *_Error.csv | while read i
do echo "${i}"
edfilename=$(echo "${i}" | sed -e 's/^\(s_([^_0-9]*_)*\)\([^\.]*\.csv\)$//')
echo "${edfilename}"
done
Eu não acho que o aix sed entenda +
, então eu os substitui por *
. E se
você realmente precisa de +
, então use \{1,\}
, que pode funcionar no aix.
Um padrão mais simples que deve ser suficiente: 's/\([^0-9]*\)_.*//'