-
Par allcl le 15 Octobre 2020 à 22:34
Exercice: à partir du script fait en cours, y ajouter une colonne supplémentaire au tableau final et y insérer le numéro de la ligne lue.
Télécharger le script bash exercice2.sh
Le résultat de ce script bash sur amants-utf8.txt:
Télécharger « tableau-exo.html »
On veut maintenant supprimer les lignes vides:
2 commentaires -
Par allcl le 15 Octobre 2020 à 22:33
Pour les manipulations suivantes, on se place dans le répertoire "Projet", dont le chemin absolu est /home/tim/Documents/Projet
APPLICATION - Les entrées et les sorties -
On crée deux répertoires "TEST1" et "TEST2" avec la commande mkdir et on vérifie la création de ces répertoires avec la commande ls :
Comment créer un répertoire qui s’appellerait « TEST 3 » ?
Pour faire cela, je tape la commande mkdir 'TEST 3'. En effet, sans la mise de la quote ' , la commande mkdir comprend qu'il faut créer deux répertoires: 3 et TEST.
On se déplace maintenant dans le répertoire TEST1 avec la commande cd TEST1. On y crée trois fichiers vides avec la commande touch : touch vide1.txt vide2.txt ../TEST2/vide3.txt. On apprend par la commande man touch que la commande touch change l'horodatage des fichiers mis en arguments, mais lorsqu'on entre un arguments des fichiers non existants, elle crée des fichiers vides.
Dans le fichier vide1.txt crée, j'y écris mon nom "Alexandra LI COMBEAU LONGUET. J'y ajoute à sa suite sur la ligne suivante, le nom du projet "Les parents hélicoptères". Je vérifie que tout cela a bien été ajouté avec la commande cat vide1.txt
Avec la commande mv qui permet de bouger un fichier d'un emplacement à un autre, je renomme vide1.txt en jenesuisplusvide.txt
Je copie le fichier jenesuisplusvide.txt dans le répertoire TEST2 crée précédemment. Ensuite, je duplique le fichier jenesuisplusvide.txt répertoire TEST1.. Ce doublon est nommé moinonplus.txt
Je demande la liste des fichiers du répertoire où je suis avec la commande ls. Ensuite, dans une autre commande, je demande à ce que cela soit enregistré dans un fichier que le système va crée, nommé liste.txt.
Après cela, je demande à ce que dans ce fichier, soit ajouté à sa suite le résultat de la commande ls (qui est à nouveau exécuté).
Avec la commande less liste.txt, je visualise dans une fenêtre de lecture ce fichier.
Même si le Terminal affiche à la foit le flot de sorti et le flot d'erreur, je peux distinguer ces deux flots dans les commandes bash. Par exemple, je peux demander à ce que le résultat de la commande fictive lsd soit imprimé à la suite dans le fichier liste.txt. Si il y a une erreur, je peux demander à ce que le résultat du flot d'erreur soit enregistré dans le fichier erreur.txt: lsd >> liste.txt 2> erreur.txt
Puisque seul la liste des fichiers du répertoire TEST1 m'intéresse, j'exécute la commande ls en demandant à ce que le résultat de la commande soit imprimé dans un nouveau fichier nommé liste.txt dans le répertoire TEST2: ls > ../TEST2/liste.txt
Je demande ensuite à ce que cette liste des fichiers soit à nouveau imprimé dans le fichier existant liste.txt du répertoire TEST2: ls >> ../TEST2/liste.txt
Maintenant, je supprime les fichiers vides du répertoire TEST1 avec l'aide de la commande rm. Il y a seulement vide2.txt. Pour cela, j'exécute rm vide2.txt
Je supprime ensuite le répertoire vide 'TEST 3' avec la commande rmdir : rmdir ../TEST3
APPLICATION - Les enchaînements de commandes
Rappel : Le répertoire de travail étant le répertoire Projet, et ce dernier ne contient que les répertoires crées précédemment: TEST1 et TEST2.
Compter le nombre de fichier dans votre répertoire de travail ?
La commande wc permet de compter le nombre de mots, lignes, ainsi que les octets d'un fichier. L'option -l permet de ne compter que les lignes.
La symbole | permet de rediriger la sortie standard de la commande précédant le | à l'entrée standard le suivant.
Donc, la commande ls | wc -l permet de faire la liste des fichiers du répertoire courant puis le compter les éléments de cette même liste.
Compter le nombre de fichier dans le répertoire TEST2 ?
En procèdent de la même façon que la question précédente, on exécute la commande ls ./TEST2 | wc -l
Les résultats en image:
votre commentaire
Suivre le flux RSS des articles de cette rubrique
Suivre le flux RSS des commentaires de cette rubrique