Commande: trouver fichiers sans extension

Fermé
ayok13 - 10 mai 2012 à 12:19
dna.factory Messages postés 25236 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 20 septembre 2024 - 10 mai 2012 à 14:07
Bonjour,

je préciser que je suis dans une console Cygwin, mais je pense que cela ne change pas grand chose. Je suis dans un répertoire avec énormément de fichiers. Je dois travailler sur des fichiers qui n'ont pas d'extension.
Je voudrais savoir quelle est la commande qui permet de lister ces fichiers. Que ce soit avec "ls", "find" ou ce que vous voulez du moment que ça m'affiche la liste de ces fichiers particuliers.
Merci beaucoup ;)

A voir également:

3 réponses

dna.factory Messages postés 25236 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 20 septembre 2024 1 612
Modifié par dna.factory le 10/05/2012 à 12:41
qui n'ont pas de point, ou pas d'extention ?
un simple grep -v . t'afficheras tous les fichier n'ayant pas de points.
un grep -v '\....$' devrait (si je me gourre pas sur les expressions régulières) t'afficher tous les fichiers sauf ceux se terminant par un point suvit de 3 caractères.
(la commande contient 4 points d'affilés)
tu peux étendre les regex pour chercher de 2 à 4 caractères après le point. *
(ou faire ta faignasse et piper 3 grep -v)
google-chance : grep+regex : http://www.robelle.com/smugbook/regexpr.html
Stop failing the turing test !
0
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
10 mai 2012 à 12:34
hello
recherche tout les fichiers dont le nom ne se termne pas par . et 3 caractères
find . ! -iname "*.???"
0
Merci beaucoup pour vos réponses, rapides en plus :D
Les fichiers sont sans point et sans extension, un vrai fichier linux quoi ;)
@dna.factory : je n'ai pas réussi à atteindre mon but avec grep.
"grep -v ." ne me donne rien, le prompt disparait et semble être en attente.
quand je le fais précédé d'un ls, cela ne donne toujours rien.
Pour l'expression régulière, quand je lance le grep tout seul ça fait comme la première fois et ça attend. Quand je le pipe à un ls il m'affiche effectivement quelques fichiers sans extensions (mais pas tous, j'ai vérifié en regardant manuellement la longue liste de fichiers du répertoire), mais aussi certains fichiers en .exe..., étrange
Mais je pense qu'effectivement avec les expressions régulières on doit pouvoir le faire, et c'est vrai qu'avec celle que tu as proposé ça aurait du marché, bizarre...
@dubcek : la commande fonctionne nickel. Pour généraliser la commande on peut même utiliser "*.*"
Merci encore
0
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
10 mai 2012 à 14:00
les noms de fichiers peuvent contenir des points sans représenter une extension : a.b.c , xxxx-1.2
0
dna.factory Messages postés 25236 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 20 septembre 2024 1 612
Modifié par dna.factory le 10/05/2012 à 14:08
j'ai peut-etre été laconique...
grep -v tout seul ne te donnera rien, il faut l'utiliser en filtre d'une autre commande, par exemple ls.
ls |grep -v tmp te sortira tous les noms de fichiers ne contenant pas tmp (que ce soit au début, au milieu, ou à la fin)
ls |grep -v '\.tmp$' te listeras tous les fichiers ne se terminant pas par .tmp
ls |grep -v '\..\{2-4\}$' devrait (là je garantis rien, et je suis en vacances, donc j'ai pas mon sco, mon cygwin ou mon debian avec moi pour valider) te lister tous les fichiers ne se terminant pas par un point suivit de 2 à 4 caractères (de .7z à .html).

l'avantage du grep, c'est que tu peux l'utiliser en conjonction du find, qui est beaucoup plus puissant ((taille, date de modif, etc..) que le ls.
les regex étant ce qu'elles sont, tu dois pouvoir les utiliser aussi avec find.
0