Como a análise de ls é geralmente uma má idéia , aqui estão duas soluções alternativas - uma em python como one-liner e outra em shell loop:
$ python -c "import os,sys;[sys.stdout.write(f+'\n') for f in os.listdir('.') if len(f) == 8 and '.' not in f]"
TEXTFILO
deadline
FILENAME
diskman2
Pictures
emptydir
ud_indie
strategy
EET 4330
$ for f in * ; do ! [[ $f =~ '.' ]] && [[ ${#f} -eq 8 ]] && echo "$f" ; done
deadline
diskman2
EET 4330
emptydir
FILENAME
Pictures
strategy
TEXTFILO
ud_indie
A sintaxe de ambos é a mesma - nós executamos os arquivos no diretório de trabalho atual, e usando duas verificações lógicas para saber se há .
no nome do arquivo e se nome do arquivo é igual a 8 caracteres, determine qual nome de arquivo imprimir.
Observe que a sintaxe [[
pode ser usada com bash
, zsh
e ksh