Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix
Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix
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 17/12/2011, 09h21   #1
Candidat au titre de Membre du Club
 
Homme
Inscription : juin 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 33
Points : 13
Points : 13
Par défaut commande shell unix

bonjour à tous
je désire copier dans rep (rep se trouve dans le repertoire courant) les fichiers de /usr/include dont le nom commence par std puis créer un fichier allincludes.h qui contenant toutes les lignes des fichier du répertoire rep où apparaît la chaîne include.
voilà ma réponse:
Code :
1
2
3
4
5
6
7
8
9
#! /bin/bash
cd ~
mkdir rep
cp `grep std* /udr/include` rep/
cd rep
for var in *
do  
cat $var|grep include > allincludes.h
done
est ce juste??
merci d'avance
achrafkaran est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/12/2011, 11h01   #2
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

Le but final est-il d'avoir uniquement un fichier "allincludes.h" contenant les bonnes lignes, ou d'avoir aussi le répertoire "rep" et ses fichiers "std*" ?
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 17/12/2011, 11h14   #3
Candidat au titre de Membre du Club
 
Homme
Inscription : juin 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 33
Points : 13
Points : 13
Citation:
Envoyé par zipe31 Voir le message
Salut,

Le but final est-il d'avoir uniquement un fichier "allincludes.h" contenant les bonnes lignes, ou d'avoir aussi le répertoire "rep" et ses fichiers "std*" ?
merci pour votre réponse
le but est d'avoir aussi le répertoire rep et ses fichiers
achrafkaran est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/12/2011, 11h39   #4
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Ok. Perso j'emploierai plutôt la commande "find" pour ça :

Code :
1
2
3
4
5
#! /bin/bash
cd ~
mkdir rep
find /usr/include/ -maxdepth 1 -type f -name "std*" -exec cp -v {} rep/ \;
egrep -h 'include\b' rep/std* > rep/allincludes.h
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 17/12/2011, 12h00   #5
Candidat au titre de Membre du Club
 
Homme
Inscription : juin 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 33
Points : 13
Points : 13
Citation:
Envoyé par zipe31 Voir le message
Ok. Perso j'emploierai plutôt la commande "find" pour ça :

Code :
1
2
3
4
5
#! /bin/bash
cd ~
mkdir rep
find /usr/include/ -maxdepth 1 -type f -name "std*" -exec cp -v {} rep/ \;
egrep -h 'include\b' rep/std* > rep/allincludes.h
merci pour votre réponse
pouvez vous m'expliquer votre code? (-maxdepth, cp -v {}, egrep -h 'include\b' rep/std* )
je suis débutant, c'est pourquoi dans mon code j'ai utilisé que des commandes de base sans options!
merci infiniment d'avance
achrafkaran est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/12/2011, 12h04   #6
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Toutes les explications se trouvent dans les pages de "man" des commandes :
find
grep
cp
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 17/12/2011, 12h20   #7
Candidat au titre de Membre du Club
 
Homme
Inscription : juin 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 33
Points : 13
Points : 13
Citation:
Envoyé par zipe31 Voir le message
Toutes les explications se trouvent dans les pages de "man" des commandes :
find
grep
cp
merci j'ai bien compris ,il reste un seule caractère \b! pourquoi vous avez mis ce caractère???
achrafkaran est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/12/2011, 12h27   #8
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Citation:
Envoyé par achrafkaran Voir le message
merci j'ai bien compris ,il reste un seule caractère \b! pourquoi vous avez mis ce caractère???
C'est pourtant noté dans la page de man de "grep" :
Citation:
Le symbole \b correspond à une chaîne vide à l'extrémité d'un mot, et \B correspond à une chaîne vide ne se trouvant pas à une extrémité de mot.
Sans ça, le grep retournerait aussi les chaînes comme "included".
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 17/12/2011, 12h30   #9
Candidat au titre de Membre du Club
 
Homme
Inscription : juin 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 33
Points : 13
Points : 13
Citation:
Envoyé par zipe31 Voir le message
C'est pourtant noté dans la page de man de "grep" :

Sans ça, le grep retournerait aussi les chaînes comme "included".
merci pour votre réponse
achrafkaran est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h00.


 
 
 
 
Partenaires

Hébergement Web