Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2008, 11h41   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2002
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 38
Points : 10
Points : 10
Par défaut relier des commandes unix ensemble

Bonjour,

je debute dans la création de script shell et ça doit surement être une chose 'facile' mais je ne trouve pas.
je dois afficher pour tous les fichiers d'un repertoire : le nom du fichier, sa taille et 2 informations contenues dedans sur une ligne pour chaque fichier.
J'ai trouvé pour la taille et le nom : du -k *.txt (à moins que vous connaissiez une commande donnant plus précisement la taille?)
pour les 2 recherches :
ls *.txt | grep 'N° version :' *
ls *.txt | grep 'Date :' *

Comment reunir toutes ses informations pour un fichier sur une seule ligne?
taille nom recherche1 recherche2

Merci de votre aide.
jfb53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 12h24   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 779
Points : 7 779
Code :
( commande ; commande ) > fichier
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 13h54   #3
Candidat au titre de Membre du Club
 
Inscription : juin 2002
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 38
Points : 10
Points : 10
merci de votre reponse, mais les commandes s'executent l'une apres l'autre.
je me retrouve avec :
taille nom du fichier 1
taille nom2 du fichier 2
...
puis
N° version du fichier 1
N° version du fichier 2
...
puis
Date du fichier 1
Date du fichier 2
...

alors que je voudrais l'affichage :
taille nom N° version date du fichier 1
taille nom N° version date du fichier 2

j'espere avoir été plus clair, c'est pas facile à expliquer. En fait pas les commandes les unes apres les autres pour tous les fichiers, mais les commandes en meme temps pour chaque fichiers.
la premiere ligne m'affiche la taille, le nom la date et le numéro de version du premier fichier affiché.
la deuxieme ligne m'affiche la taille, le nom la date et le numéro de version du deuxieme fichier affiché etc...


Merci.
jfb53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 14h22   #4
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 779
Points : 7 779
ok j'avais pas compris

il faut utiliser egrep à ce moment là

commande | egrep "pattern1|pattern2"
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 14h40   #5
Membre habitué
 
Inscription : novembre 2007
Messages : 130
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 130
Points : 134
Points : 134
voi la solution

tu va faire un ls sur les fichier puis tu vaparcourir la liste et executer les operations les unes apres les autres

Code :
1
2
3
4
5
6
7
8
9
10
 
for nom in $(ls *.txt) 
do
    echo -n $nom  >> ./resultat # La tu ecrit le nom de fichier 
                                          #echo -n pour nepas revenir a la ligne
    du -k $nom >>  ./resultat # ajouter la taille du fichier
 
    echo # pour revenir a la ligne
 
done
pour recuperer la date date -r <fichier>

tu peu aussi utiliser ls -l fichier qui te donne des informations plus detailles sur le fichiers comme la date la taille les autorisations

pour faire le trie parmis ses infos tu utilisera awk
azalsup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 09h07   #6
Candidat au titre de Membre du Club
 
Inscription : juin 2002
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 38
Points : 10
Points : 10
Bonjour,

merci à tous les deux pour les réponses. Je viens de tester le code et le retour semble plutôt lent? un probléme peut être au niveau de la performance du serveur?
je vais tenter avec egrep.

Merci.
jfb53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h02.


 
 
 
 
Partenaires

Hébergement Web