#26 Le 27/06/2011, à 23:05
- Hizoka
Re : [resolu] liste fichier : contraire de */
au mieux j'arrive à :
IFS=$'\n' liste=($(find "${PWD}" -maxdepth 1 -type f) Exit)
select fichier in ${liste[@]}
do
[[ ${fichier} == Exit ]] && return || break
done
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#27 Le 28/06/2011, à 01:30
- Postmortem
Re : [resolu] liste fichier : contraire de */
Bonsoir !
Hizoka, je sais pas si tu as fait gaffe mais si tu fais comme ça, faut que tu sauvegardes l'ifs d'origine car j'ai l'impression qu'il est modifié dans le script et pas seulement pour l'affectation de la variable liste :
$ liste=($(find "${PWD}" -maxdepth 1 -type f) Exit)
$ select fichier in ${liste[@]}
> do
> [[ ${fichier} == Exit ]] && return || break
> done
1) /home/xxxxxx/test2/fic 3) /home/xxxxxx/test2/fic 5) /home/xxxxxx/test2/fic 7) Exit
2) 01 4) 02 6) 03
#? 1
$ IFS=$'\n' liste=($(find "${PWD}" -maxdepth 1 -type f) Exit)
$ select fichier in ${liste[@]}
> do
> [[ ${fichier} == Exit ]] && return || break
> done
1) /home/xxxxxx/test2/fic 01 3) /home/xxxxxx/test2/fic 03
2) /home/xxxxxx/test2/fic 02 4) Exit
#? 2
$ liste=($(find "${PWD}" -maxdepth 1 -type f) Exit)
$ select fichier in ${liste[@]}
> do
> [[ ${fichier} == Exit ]] && return || break
> done
1) /home/xxxxxx/test2/fic 01 3) /home/xxxxxx/test2/fic 03
2) /home/xxxxxx/test2/fic 02 4) Exit
#? 3
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#28 Le 28/06/2011, à 06:16
- Hizoka
Re : [resolu] liste fichier : contraire de */
en effet...
je pensais pourtant que ca n'affectait que la commande non ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#29 Le 28/06/2011, à 06:26
- gerarmentor
Re : [resolu] liste fichier : contraire de */
et pourquoi cet IFS ?
Le caractère null (\0) est le seul caractère interdit dans un chemin de fichier des systèmes de fichiers unix/linux (interdit également en NTFS et FAT*).
Quand tu utilises un saut de ligne pour séparer les noms ou chemins de fichier, tu ajoutes un bug à ton programme.
Hors ligne
#30 Le 28/06/2011, à 08:34
- Sciensous
Re : [resolu] liste fichier : contraire de */
je ne sais pas si ça à évolué alors:
i=0; for f in `ls`; do if [ -f "$f" ]; then liste[$i]="$f"; i=$((i+1)); fi; done; liste[$i]="Exit";
puis le
select fichier in ${liste[@]}
do
[[ ${fichier} == Exit ]] && return || break
done
surement il est possible d'optimiser le 1er code
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#31 Le 28/06/2011, à 09:10
- Postmortem
Re : [resolu] liste fichier : contraire de */
en effet...
je pensais pourtant que ca n'affectait que la commande non ?
Bonjour !
Mais là, ce n'est pas une commande, liste=($(find "${PWD}" -maxdepth 1 -type f) Exit) est une affectation de variable (enfin de tableau là). Donc, on définie la variable IFS et le tableau liste pour l'environnement courant.
Par exemple, dans le cas suivant, il n'y a pas besoin de sauvegarder l'ifs car read est bien une commande :
while IFS=';' read titi toto
do
echo "$toto : $titi"
done < un_fic.txt
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#32 Le 28/06/2011, à 10:12
- FRUiT
Re : [resolu] liste fichier : contraire de */
i=0; for f in `ls`
surement il est possible d'optimiser le 1er code
En effet...
http://mywiki.wooledge.org/ParsingLs
then liste[$i]="$f"; i=$((i+1)); fi; done
C'est laborieux... Tu peux faire
liste+=( "$f" )
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#33 Le 28/06/2011, à 12:08
- Watael
Re : [resolu] liste fichier : contraire de */
Salut,
sans oublier les guillemets
select choix in "${tableau[@]}"; do
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#34 Le 28/06/2011, à 12:57
- Sciensous
Re : [resolu] liste fichier : contraire de */
merci FRUIT
serait-ce mieux:
for f in *; do if [ -f "$f" ]; then liste+=( "$f" ); fi; done; liste+=( "Exit");
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#35 Le 28/06/2011, à 13:42
- Hizoka
Re : [resolu] liste fichier : contraire de */
for f in *; do [[ -f "${f}" ]] && liste+=( "$f" ); done; liste+=( "Exit");
peut le faire en effet.
sinon un demi dieu me parlait de ceci :
# liste les dossiers présents dans une variable
dossiers="$(compgen -o dirnames)"
# GLOBIGNORE permet de lister les fichier à ne pas afficher
GLOBIGNORE="${dossiers//$'\n'/:}"
for i in *; do echo "$i"; done
> free.pdf
> x264.pdf
mer reste plus qu'a choisir
merci à vous.
PS : il n'en reste pas moins, que c'est dommage qu'il n'y ai rien de prévu...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#36 Le 15/08/2011, à 06:48
- Hizoka
Re : [resolu] liste fichier : contraire de */
il existe :
Fichiers=( $dir/* )
qui crée une liste dans la variable Fichiers ne contenant que les fichiers.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#37 Le 15/08/2011, à 13:14
- Watael
Re : [resolu] liste fichier : contraire de */
...dans le sens où les répertoires sont des fichiers.
Dernière modification par Watael (Le 15/08/2011, à 13:15)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#38 Le 15/08/2011, à 18:32
- Hizoka
Re : [resolu] liste fichier : contraire de */
en effet... j'ai repris une connerie, j'avais pas testé en choppant ça sur le net...
désolé.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#39 Le 18/08/2011, à 11:24
- Plastivore
Re : [resolu] liste fichier : contraire de */
Est-ce que ça serait bon comme ça ?
$ find -maxdepth 1 -type d
.
./ISO
./Docs
./Perso
Voire :
find -mindepth 1 -maxdepth 1 -type d
pour se débarasser de l'alias ".".
Hors ligne
#40 Le 18/08/2011, à 12:49
- FRUiT
Re : [resolu] liste fichier : contraire de */
Mais t'as lu le thread ? Ou pas ??
merci de ne pas me proposer find ou ls...
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne