Linux: Comment lister tous les fichiers/répertoires en utilisant uniquement des ls

C'est une question donnée à l'université.

La question est: Liste tous les fichiers/répertoires à l'intérieur de testfiles dossier, qui n'ont pas d'extension.
La réponse donnée est: est-ce

ls testfiles | grep -v "\."

Maintenant, juste pour comprendre comment ls regex fonctionne, quelqu'un pourrait-il svp expliquer - moi comment ce serait en utilisant uniquement ls? Par ailleurs, j'apprécierais un exemple qui utilise également le signe dollar $, pour que le nom se termine par .[a-z].

Toute aide, vraiment apprécié.

Une chose de plus! Une autre réponse à cette question est à l'aide de:

ls testfiles | grep "^[^.]*$"

Comment est-ce que lire? J'ai lu ^[^.]*$ comme ceci:

^      -> does not contain
[^.]   -> starts with a dot
*      -> repeated zero or more times
$      -> till the end

Je voudrais quelqu'un pour me corriger sur ce...
Merci!

Je ne pense pas que vous pouvez le faire en utilisant seulement ls.
ls utilise étendu glob syntaxe, pas de regex. Jetez un oeil à ceci pour des idées.
[^.] comme une expression régulière correspond à tout caractère unique sauf d'une période.
Votre regex analyse n'est pas tout à fait à droite, un ^ au début est le début de l'ancre. De sorte que le motif est vraiment correspondant à un nombre de caractères qui ne sont pas un point du début à la fin.
Vous avez perdu moi à "|". Si l'exigence est 'ls', alors qu'est-ce que grep faire là-dedans?

OriginalL'auteur m.spyratos | 2013-03-25