Pages : 1
#1 Le 19/09/2019, à 20:20
- Klemens
Recheche avec ls
j'ai appris qu'avec ls on pouvait rechercher des fichier par nom / extension
ls ?a* on cherche un nom avec un a en 2 eme place
Mais par exemple je cherche un fichier a 6 lettres et 1 chiffre par exemple 5
comment faire pour le trouvé peut importe ou ce trouve le 5 ?
Merci de votre aide
Hors ligne
#2 Le 19/09/2019, à 20:41
- pingouinux
Re : Recheche avec ls
Bonsoir,
Ça ne répond pas exactement à la question, mais voici déjà comment trouver les fichiers dont le nom a 7 caractères dont un 5 :
for i in *5*;do [ $(wc -m <<<"$i") = 8 ] && echo "$i"; done
Édité :
Et pour limiter les autres caractères aux lettres minuscules :
for i in *5*;do grep -q '^[a-z]*5[a-z]*$' <<<"$i" && [ $(wc -c <<<"$i") = 8 ] && echo "$i"; done
Dernière modification par pingouinux (Le 19/09/2019, à 20:51)
Hors ligne
#3 Le 19/09/2019, à 21:06
- Postmortem
Re : Recheche avec ls
Salut,
Petite précision, ls ne recherche pas. ls ne fait qu'afficher les fichiers qu'on lui donne en argument.
Pour t'en convaincre, regarde ceci :
$ ls *.txt
tata.txt toto.txt
$ echo *.txt
tata.txt toto.txt
$
C'est le shell qui remplace *.txt par les fichiers correspondant avant l'exécution de ls ou echo.
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#4 Le 19/09/2019, à 22:07
- kamaris
Re : Recheche avec ls
Une proposition en bash :
shopt -s extglob
for f in *([a-zA-Z])5*([a-zA-Z]); do test "${#f}" == 7 && ls "$f"; done
Hors ligne
#5 Le 19/09/2019, à 22:58
- Watael
Re : Recheche avec ls
en bash :
rgx='^[a-Z5]{7}$'
for f in ./*; do [[ ${f##*/} =~ $rgx ]] && stat "$f"; done
?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 19/09/2019, à 23:21
- jamesbad000
Re : Recheche avec ls
Bonsoir,
S'il s'agit vraiment de chercher (on ne sait pas dans quel sous répertoire se trouve le fichier). Utiliser find me semble approprié.
find . | egrep '/[a-zA-Z0-9]{7}$' | egrep '/[a-zA-Z]*5[a-zA-Z]*$'
Dernière modification par jamesbad000 (Le 19/09/2019, à 23:22)
L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)
Hors ligne
#7 Le 19/09/2019, à 23:23
- kamaris
Re : Recheche avec ls
en bash :
rgx='^[a-Z5]{7}$' for f in ./*; do [[ ${f##*/} =~ $rgx ]] && stat "$f"; done
?
Là tu sors du cadre de l'énoncé : les fichiers correspondant à la regex peuvent contenir zéro ou plusieurs 5.
Dernière modification par kamaris (Le 19/09/2019, à 23:24)
Hors ligne
#8 Le 20/09/2019, à 00:10
- Watael
Re : Recheche avec ls
hula hup
[[ $var =~ $rgx && $var =~ 5 ]]
barbatruc.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 20/09/2019, à 00:41
- Postmortem
Re : Recheche avec ls
@Watael : pas bon non plus, là tu acceptes qu'il y ait plusieurs 5
Dernière modification par Postmortem (Le 20/09/2019, à 00:42)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#10 Le 20/09/2019, à 01:11
- Watael
Re : Recheche avec ls
grrr.
avec du ruban adhésif ?
$ rgx='^[a-Z5]{7}$' # 7 caractères (de a à Z et/ou 5)
$ for f in ./*
do
filename=${f##*/}; [[ $filename =~ $rgx && $(x=${BASH_REMATCH//5}; echo ${#x}) -eq 6 ]] && stat "$f" # en enlevant tous les 5, la chaîne restant doit comporter 6 caractères
done
ça ne me plaît pas que ce ne soit pas plus direct.
Dernière modification par Watael (Le 20/09/2019, à 01:18)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#11 Le 20/09/2019, à 09:20
- kamaris
Re : Recheche avec ls
Il y a ça sinon :
rgx1='^[a-Z5]{7}$'; rgx2='^[^5]*5[^5]*$'
for f in ./*; do filename=${f##*/}; [[ $filename =~ $rgx1 && $filename =~ $rgx2 ]] && stat "$f"; done
Hors ligne
#12 Le 20/09/2019, à 09:24
- Postmortem
Re : Recheche avec ls
Sans boucle, en bash :
shopt -s extglob
GLOBIGNORE=*5*5*:+([a-z])
ls $(printf '[a-z5]%.s' {1..7})
Edit :
Si on est en LANG=fr_FR.UTF-8, pour être certain de n'avoir que les minuscules, ça serait plutôt :
shopt -s extglob
GLOBIGNORE=*5*5*:+([[:lower:]])
ls $(printf '[[:lower:]5]%.s' {1..7})
Dernière modification par Postmortem (Le 20/09/2019, à 10:40)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#13 Le 20/09/2019, à 10:03
- kamaris
Re : Recheche avec ls
Pas mal…
Hors ligne
#14 Le 20/09/2019, à 15:53
- Watael
Re : Recheche avec ls
+1
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
Pages : 1