Exercice 1 :
echo 'USER WHOIS SHELL'; cut -d : -f 1,5,7 /etc/passwd | tr : '\t'
Exercice 2 :
cut -c 24- compte > /tmp/clients cut -c 6-20 compte > /tmp/nums cut -c 21 compte > /tmp/lettres
La première commande crée le fichier /tmp/clients qui contient les désignations des clients, la deuxième commande crée les numéros de comptes et la troisième crée un fichier de lettres de comptes.
paste -d "||" /tmp/clients /tmp/nums /tmp/lettres
Cette commande réalise la mise bout-à-bout des lignes des 3 fichiers en séparant les contenus par des barres verticales. Ce qui donne :
Désignation | Numéro de compte | Lettre
paste -d "||" /tmp/clients /tmp/nums /tmp/lettres | join -t '|' -1 2 -2 3 -o 1.1,2.1,2.2 gestion -
Le résultat du paste est ‘join’ sur le même champ avec le fichier gestion. On ne fourni que les champs nécessaires (le premier champ du fichier gestion et les 2 premiers du résultat du pipe).
Exercice 3 :
Si on considère que fichier est le fichier résultat sans les lignes de tête :
cat fichier | tr -s '\t' | cut -f 2 | tr : + | bc | paste -d '\t' fichier -
tr -s '\ t' : remplace les tabulations succéssives par une seule (pour avoir la liste des nombres en 2 ème champ; sinon nous aurons une chaîne vide en deuxième champ s’il y avait plusieurs tabulations après le nom cut -f 2 : prend le second champ (Nbr1:Nbr2:Nbr3) tr : + : transforme Nbr1:Nbr2:Nbr3 en Nbr1+Nbr2+Nbr3 bc : évalue l’expression Nbr1+Nbr2+Nbr3 paste -d '\ t' fichier - : rajoute à fichier, en troisième colonne, le résultat de bc