|
|
|
|
Bonjour !
Je suis étudiant en IUT d'informatique et j'ai un projet script a réaliser pour dans environ 1 mois.
J'ai quelques questions concernant des commandes que je n'arrive pas à trouver:
- Je souhaiterais créer un fichier texte de plusieurs lignes contenant sur chaque ligne le nom d'un fichier (existant dans un répertoire donné) puis un commentaire que j'aurai choisi. Jusque là pas de problème.
J'aimerais ensuite pouvoir récuperer uniquement le commentaire d'un fichier choisi (j'utilise 'grep' qui me permet de selectionner la bonne ligne, mais il me donne tout le contenu de la ligne, alors que je ne veux récuperer que le commentaire)
Y a t'il un moyen (comme en Java) de récuperer uniquement une partie de la ligne voulue ? Je ne peux pas compter les caracteres car les noms des fichiers sont de différentes longueurs, par contre je peux utiliser un caractère séparateur. Mais quelle commande faut il utiliser ?
exemple: je crée un fichier dans ce genre:
|-------------------------------------------------------|
| fichier_1 commentaire du fichier 1 |
| fichier_2 commentaire du fichier 2 |
| ... ... |
|-------------------------------------------------------|
et je voudrais pouvoir accéder uniquement au commentaire associé au fichier.
Et une fois que j'ai accédé au commentaire voulu, quelle commande permettrait de le modifier sans toucher au début de la ligne ni au reste du fichier texte ?
- deuxième question, mon programme doit demander un répertoire dans lequel effectuer ses traitements. Ce répertoire doit être tapé au clavier par l'utilisateur.
Comment faire pour vérifier si le répertoire entré existe bien ?
Et comment faire pour savoir si ce répertoire est vide ou contient des fichiers (et combien de fichiers il contient) ? (je ne parle pas de la commande 'ls' qui liste le contenu d'un répertoire, mais d'une commande qui permettrait de donner le nombre d'élements qu'il contient)
Merci beaucoup pour vos réponses !
@ +
Salut,
if [ -d arg ]; then echo "C'est une repertoire" else echo "C'est pas un repertoire" fi; Pour compter le nombre de fichiers dans un repertoire, un ls |wc -w devrait faire l'affaire. ++ ...Mana mana Tutudutu... |
Une autre solution consiste a utiliser "cut" qui permet de couper une ligne en morceau et de choisir le morceau qui convient.
grep fichier_1 nom_du_fichier | cut -d ' ' -f 2- ceci signifie dans la ligne qui contient "fichier_1" je prends tous les elements qui suivent le premier 'espace' (-f 2-) dans le cas ou tu utilises la tabulation comme separateur tu n'as pas a definir le separateur grep fichier_1 nom_du_fichier | cut -f 2- Un man cut t'aideras pour toutes les possibilités. Bon courage.
|
Salut,
sed -e 's/fichier_1\(.*\)/fichier_1 nouveau_commentaire/' nom_fichier > nom_fichier.tmp rm nom_fichier mv nom_fichier.tmp nom_fichier Tu peux creer un fichier script "s1.sh" de ce genre #! /bin/bash echo "s/$1\(.*\)/$1 $2/" > t1.tmp sed -f t1.tmp $3 > $3.tmp rm $3 mv $3.tmp $3 rm t1.tmp et alors il suffit d'ecrire apres avoir modifier en executable ce fichier script
|
"Pour repondre completement il me faut plusieurs parametres :
|