Commande find criteres et affichage

Fermé
Lakios - 29 févr. 2016 à 05:00
Lakios Messages postés 7 Date d'inscription lundi 29 février 2016 Statut Membre Dernière intervention 2 octobre 2016 - 29 févr. 2016 à 19:43
Bonjour, je suis en pleine apprentissage des bases de linux, et on me pose comme problemme de trouver LA commande qui affiche une liste d'un repertoire dont les noms debutent par 'c' et ne finissent PAS par 'c, f ou y'. Il faut afficher uniquement la liste de ces fichiers separer par des virgules et en fonction de la date de modification des fichiers, du plus recent au moin recent.

J'ai tenter plusieurs fois d'y arriver et je me suis rendu la :
find /etc -type f -name c*[!cfy]

Enssuite pour afficher j'ai essayer :
find /etc -type f -name c*[!cfy] -exec ls -m {} \;

Je trouve toujours pas comment faire.

2 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 29/02/2016 à 06:52
Je n'avais pas tout lu. Je continue mes tests !
johand@bata:~/tmp$ find .  -maxdepth 1 -type f  | sort
./01 - King Crimson - Red.mp3
./.bashrc
./bigben.wav
./bon-december.pdf
./brol.sh
./brol.tar
./brol.tar.gz
./calibre-bin_2.5.0+dfsg-1_amd64.deb
./coder.php.html
./data.txt
./data.txt~
./Esso_logo.eps
./Esso_logo.pdf
./FN.db
./heller.url
./hostname
./hostname.c
./index.php
./index.rar
./moyenne.c~
./Raspberry Pi Cookbook.pdf
./SWIGDocumentation.pdf
./tar.config
./telephone.pdf
./test_config.py
./test_config.pyc
./testnl.py
./test.sh
./test.sh~
./test.wav
./titieee
./Total_Distro_Toolkit.iso
johand@bata:~/tmp$ find . -maxdepth 1 -type f -name '[tE]*[!fy]' -printf "%P," | sed -e 's/,$/\n/'
test.sh~,test.sh,titieee,tar.config,test_config.pyc,Esso_logo.eps,test.wav


Je regarderai le problème du tri plus tard car je dois quitter mon poste.

ATTENTION cependant aux objets dont le nom contient une virgule.
johand@bata:~/tmp$ find .  -maxdepth 1 -type f -name '[tE]*[!fy]' -printf "%P," | sed -e 's/,$/\n/'
test.sh~,test.sh,titieee,trèsy, très mauvais nom,tar.config,test_config.pyc,Esso_logo.eps,test.wav


Il vaut mieux séparer les noms par le caracère NULL (0x00). De nombreux utilitaires GNU per mettent de spécifier ce séparateur: xargs, sort, shuf...
L'option '-print0' de find est destinée à cet effet.
A VERIFIER: sous UNIX les seuls caractères interdits sont 0x00 et '/'
Gates gave ^W  sold  you the windows.
GNU gave us the whole house.(Alexandrin)
1
Lakios Messages postés 7 Date d'inscription lundi 29 février 2016 Statut Membre Dernière intervention 2 octobre 2016
29 févr. 2016 à 07:07
Merci sa fonctionne, mais je ne comprend pas cette partie de la commande :
sed -e 's/,$/\n/'
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 415
29 févr. 2016 à 08:44
Salut,

Et pourquoi pas tout simplement
ls -tm c*[!cfy]
?
0
Lakios Messages postés 7 Date d'inscription lundi 29 février 2016 Statut Membre Dernière intervention 2 octobre 2016
29 févr. 2016 à 19:43
je veux chercher l'information dans un dossier precis, sans y etre
0