Afficher le nombre des ligne sous un répertoire

Fermé
ahmed_king29 Messages postés 28 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 13 février 2015 - 5 déc. 2014 à 10:54
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 10 déc. 2014 à 17:13
Bonjour,

Merci de m'aider pour compter le nombre des fichiers ( des lignes) qui sous un path quelconque ,
j'ai essayé par cet exemple :

#!/bin/bash

$1=ls /path1 | wc -l

echo $1



A voir également:

9 réponses

aurelazy Messages postés 189 Date d'inscription vendredi 21 février 2014 Statut Membre Dernière intervention 30 janvier 2015 50
Modifié par aurelazy le 5/12/2014 à 11:15
Bonjour Ahmed,

Tu veux récupérer le résultat de la commande dans une variable ?

nbligne=`ls <path> | wc -l` 


Tu entoures ta commande avec des " `` " (altGr + 7)

ou

nbligne=$(ls <path> | wc -l)



Bonne nuit,


Well, if it looks like a duck, swims like a duck, and quacks like a duck, it's probably a duck.
0
ahmed_king29 Messages postés 28 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 13 février 2015
10 déc. 2014 à 11:44
Comment je peux modifier mon script lorsque je change le path chaque fois. c-a-d dans l'exécution du script :

./script path
./script path 1
./script path 2
...
le path est une argument dans l'exécution.

Merci,
0
aurelazy Messages postés 189 Date d'inscription vendredi 21 février 2014 Statut Membre Dernière intervention 30 janvier 2015 50
10 déc. 2014 à 13:04
Les "path" sont aléatoire ou toujours les mêmes ?

0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
10 déc. 2014 à 13:13
hello
dans le script
export PATH="$PATH:$1"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aurelazy Messages postés 189 Date d'inscription vendredi 21 février 2014 Statut Membre Dernière intervention 30 janvier 2015 50
Modifié par aurelazy le 10/12/2014 à 13:22
Ha ok, en fait le $1 de la commande de dubcek sera le premier argument passé à ta commande.
Donc $1=path1 dans ta commande: ./script path1

Bonne nuit,

Well, if it looks like a duck, swims like a duck, and quacks like a duck, it's probably a duck.
0
ahmed_king29 Messages postés 28 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 13 février 2015
10 déc. 2014 à 13:46
Les paths sont toujours les même.

Merci
0
aurelazy Messages postés 189 Date d'inscription vendredi 21 février 2014 Statut Membre Dernière intervention 30 janvier 2015 50
10 déc. 2014 à 13:54
Si as chaque fois tu dois lancer le script avec différents path,
Tu peux soit créer une liste dans ton script qui va comprendre tous tes "path" et ensuite tu boucles sur cette liste pour récupérer tes informations, ou créer un fichier plat avec tous tes path à l'interieur, ensuite dans ton script tu appels ton fichier et tu récupères tes infos.

Voila,

0
ahmed_king29 Messages postés 28 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 13 février 2015
10 déc. 2014 à 14:09
Merci aurelazy de m'aider pour rédiger le script avec un boucle.
0
ahmed_king29 Messages postés 28 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 13 février 2015
10 déc. 2014 à 15:08
J'ai essayé par ce script :

#!/bin/bash


PATH=$1


nblign=`ls $PATH | wc -l`


echo nbligne


lorsque je lance l'éxécution je recois :

./nombre-ligne.sh path

./nombre-ligne.sh: line 7: ls : commande introuvable
./nombre-ligne.sh: line 7: wc : commande introuvable
nbligne


Merci de m'aider.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
10 déc. 2014 à 15:42
il faut ajouter $1, pas remplacer
export PATH="$PATH:$1"
0
ahmed_king29 Messages postés 28 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 13 février 2015
10 déc. 2014 à 16:06
Comme ça ?

#!/bin/bash


PATH="$PATH:$1"


nblign=`ls $PATH | wc -l`


echo nbligne
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 10/12/2014 à 16:36
pourquoi : ls $PATH ?
PATH est une variable: echo $PATH
tu veux compter le nb. de fichiers dans chaque répertoire dans PATH ?
nblign=$(ls ${PATH//:/ } | wc -l)
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
10 déc. 2014 à 16:38
PATH est une liste de répertoires séparés par :
voir post # 13
0
ahmed_king29 Messages postés 28 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 13 février 2015 > dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024
10 déc. 2014 à 16:49
Merci dubcek pour votre collaboration mais J'ai obtenu le même problème :

#!/bin/bash

export PATH="$PATH:$1"

nbligne=$ (ls ${PATH//:/ } | wc -l)

echo nbligne

$ ./nombre-cdr.sh /opt
ls: impossible d'accéder à /opt/albat/bin: Aucun fichier ou dossier de ce type
nbligne
0
ahmed_king29 Messages postés 28 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 13 février 2015
10 déc. 2014 à 17:05
lorsque je tape :

ls /opt/albat/bin | wc -l ----> j'obtient 3

et lorsque j'exécute le script j'obtient :

$ ./nombre-cdr.sh /opt/albat/bin
ls: impossible d'accéder à /opt/albat/bin: Aucun fichier ou dossier de ce type
1552
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
10 déc. 2014 à 17:13
afficher PATH : echo $PATH
0