IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Création d'un script sur le bash


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 16
    Par défaut Création d'un script sur le bash
    Bonjour,

    Je suis novice en Linux, je commence il y a 2 semaines et je suis sur un exo qui me demande d'écrire un script qui prend deux paramètres : un nom de fichier "fich" et un nom de répertoire "rep".
    Le but de ce script est de recopier chaque ligne du fichier "fich" dans un fichier du même nom situé dans le répertoire "rep".
    Dans ce nouveau fichier, chaque ligne recopiée sera complétée par le nombre de mots de la ligne précédé de deux points.
    Le script vérifie l'existence des deux paramètres et qu'il s'agit respectivement d'un fichier et d'un répertoire.


    Exemple du résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    voici un exemple : 3mots 
    de fichier : 2 mots
    qui sera recopie : 3 mots
    par le script developpe : 4 mots
    J'ai donc commencé par écrire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fich="monfichier.txt" rep="rep"
    echo "past $fich1 $rep/$fich1"
    echo "cat $fich > $rep/$fich"
    Je voudrais savoir si mon script est correct (j'ai testé mais il m'apparaît incomplet) et comment je peux compter les mots de chaque ligne et place la somme devant la ligne et le deux points

    Je vous remercie d'avance.

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ cat fichier.txt
    Voici un exemple
    de fichier
    qui sera recopié
    par le script développé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ while read ligne; do echo "$ligne : $(wc -w <<<"$ligne") mot(s)";done < fichier.txt 
    Voici un exemple : 3 mot(s)
    de fichier : 2 mot(s)
    qui sera recopié : 3 mot(s)
    par le script développé : 4 mot(s)
    Il ne reste plus qu'à échanger la variable de fichier par $1 qui est le premier paramètre de ton script, et le nom de répertoire par $2, le deuxième paramètre de ton script.

    Et étudier pourquoi ça marche.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 16
    Par défaut
    Bonjour

    Ca marche !
    Je cherchais vainement la commande qui permet de lire ligne par ligne, read + argument est juste magique !

    Mon nouveau code du coup en ajoutant deux params

    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    $ rep=mon_repertoire/ #! si le dossier est dans le niveau parent, on ajoute ../ pour sortir ? 
    $ fich=mon_fichier
     
    $ while read ligne; do echo "$ligne : $(wc -w <<<"$ligne") mot(s)";done < fichier.txt
     
    Voici un exemple
    de fichier
    qui sera recopié
    par le script développé

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/11/2010, 22h06
  2. création d'un script en bash
    Par kandy dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 12/02/2010, 13h16
  3. [BASH] Création de deux scripts
    Par RIPS78 dans le forum Linux
    Réponses: 5
    Dernier message: 09/02/2009, 09h36
  4. [BASH]Problème création d' un script
    Par crasho007 dans le forum Linux
    Réponses: 2
    Dernier message: 05/11/2007, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo