Padrões de nome de arquivo do Ksh são suficientes:
# files with 2013
ls -d -- *2013*
# files without 2013
ls -d -- !(*2013*)
Referência
Se o seu shell é bash, você precisa executar shopt -s extglob antes de poder usar esse padrão (você pode colocá-lo em .bashrc ). Se o seu shell é zsh, você precisa executar setopt ksh_glob (você pode colocá-lo no seu .zshrc ). O Zsh também oferece ls -d -- ^*2013* , que requer um setopt extended_glob preliminar.
Dependendo do que você está fazendo com esses nomes de arquivos, ls pode não ser o comando correto a ser usado. Para armazená-los em uma matriz
filenames=( !(*2013*) )
for f in "${filenames[@]}"; do ...; done