Exercice lunix shell et commande - flux d’E/S standards - Redirections - méta-caractères
Rédigé par GC Team, Publié le 02 Mars 2010, Mise à jour le Mardi, 21 Juin 2022 10:23Participez au vote ☆☆☆☆☆★★★★★
Exercice 1: Flux d’E/S standards
Étudier la documentation de la commande tee.
- Écrire une commande qui affiche "Bonjour" à l’écran et en même temps crée un fichier nommé "Salutation.txt" dont le contenu est le même message.
- Ecrire un script qui lit une ligne de caractères sur son entrée standard et l’écrit sur sa sortie, en passant tous les caractères en majuscules.
- Modifiez votre script pour qu’il affiche le nombre de caractères traités sur sa sortie d’erreur.
- Créer un fichier texte quelconque. Écrire une seule commande shell qui recopie le contenu passé en majuscule de ce fichier dans un nouveau fichier nommé "Titre.txt" et affiche à l’écran le nombre de caractères traités.
Exercice 2: Redirections, méta-caractères
Le répertoire /usr/include contient les fichiers d’entête standards en langage C (stdlib.h, ...).
- Créer un répertoire nommé inc dans votre répertoire de connexion (HOME).
En utilisant une seule commande, y copier les fichiers du répertoire /usr/include dont le nom commence par std. - Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c.
- Modifier la commande de la question précédente pour qu'au lieu d’afficher le résultat, celui-ci soit placé dans un fichier nommé "Abc.list" de votre répertoire de connexion.
- Afficher le contenu de ce fichier en utilisant la commande cat.
Copier avec cat son contenu dans un nouveau fichier nommé "Copie". - Toujours avec cat, créer un nouveau fichier nommé "Double" formé par la mise bout à bout (concaténation) des fichiers "Abc.list" et "Copie".
Vérifier que le nombre de lignes a bien doublé à l’aide de la commande wc. - Créer un fichier nommé "Temp" contenant une ligne de texte.
- Avec cat, ajouter la ligne "The end" à la fin du fichier "Temp”.
- En une seule ligne de commande, faire afficher le nombre de fichiers de /usr/include dont le nom contient la lettre t.
Corrections
{sidebar id=6}{sidebar id=1} |
Flux d’E/S standards
- Q1)
echo "Bonjour" |tee salutation.txt
- Q2)
1 2 3 |
#! /bin/bash read a echo $a|tr "[a-z]" "[A-Z]" |
- Q3)
1 2 |
read a echo $a|tr "[a-z]" "[A-Z]"|tee text1 |
- Q4)
cat salutation.txt|tr "[a-z]" "[A-Z]"|tee text1|wc -c
Redirections, méta-caractères
Le répertoire /usr/include contient les fichiers d’entête standards en langage C (stdlib.h, ...).
mkdir inc
find /usr/include/ \( -name 'a*' -o -name 'b*' -o -name 'c*' \)
find /usr/include/ \( -name 'a*' -o -name 'b*' -o -name 'c*' \) >$HOME/Abc.list
cat Abc.list > copie |
cat Abc.list copie >double
touch Temp
cat >> temp
ls /usr/include/[t]* | wc |