Visualisation, redirection et concaténation de fichiers au moyen de la commande cat

Red Hat Linux est doté d'un utilitaire qui peut vous aider à manipuler des listes courtes, les regrouper et, en même temps, vous montrer un peu la puissance de votre système.

Cet utilitaire est appelé cat, une forme abrégée de "concaténer", qui signifie regrouper des fichiers en chaîne.

La commande cat permet également d'afficher le contenu d'un fichier entier à l'écran (par exemple, entrez cat filename.txt). L'utilisation de cat peut être pratique si le fichier est passablement court, mais si un fichier est plutôt long, il se mettra à défiler devant vous à l'écran car cat affiche le fichier en entier.

De plus, cat peut faire une démonstration rapide de deux termes très importants : entrée standard et sortie standard.

L'entrée et la sortie standard dirigent l'entrée et la sortie vers l'utilisateur. Si un programme lit à partir de l'entrée standard, il lira par défaut à partir du clavier. Si un programme écrit vers une sortie standard, il écrira par défaut vers l'écran.

Lancez cat pour voir exactement sa signification. A l'invite du shell, entrez :

cat

Le curseur se met sur une ligne vierge. Sur cette ligne, entrez

stop by sneaker store

et appuyez sur la touche Entrée. Votre écran ressemblera à ceci :

[newuser@localhost newuser]$ cat
stop by sneaker store
stop by sneaker store

Figure 10-7. cat fait la démonstration de l'entrée et de la sortie standard

Pour quitter cat, déplacez le curseur sur une ligne vierge en appuyant sur la touche Entrée. Ensuite, appuyez sur les touches Ctrl-D.

Vous venez d'assister à la démonstration de la commande cat des termes entrée et sortie standard ; vous avez entré des mots (entrée standard) et ils ont été affichés à l'écran (sortie standard).

Utilisation de la redirection

La redirection signifie que l'on apporte un modification de sorte que le shell change ce qu'il considère être l'entrée standard ou la destination de la sortie standard.

Précédemment, nous avons utilisé cat pour faire une démonstration de l'idée à la base de l'entrée et de la sortie standard. Maintenant, nous allons l'utiliser pour voir de quelle façon la sortie standard peut être redirigée.

Pour rediriger la sortie standard, nous utilisons le symbole >. Lorsque l'on place > après la commande cat (ou après tout utilitaire ou toute application qui écrit vers la sortie standard) on envoie la sortie au nom du fichier suivant le symbole.

Essayons. Dans une invite du shell, entrez :

[newuser@localhost newuser]$ cat > sneakers.txt
buy some sneakers
then go to the coffee shop
then buy some coffee

Figure 10-8. redirection d'une sortie vers un fichier

Maintenant, appuyez sur la touche Entrée pour vous placer sur une ligne vierge et utilisez les touches Ctrl-D pour quitter cat.

Voyez-vous la différence (voir la Figure 10-8) ? D'une part, il n'y a pas de doublon car la sortie standard de cat a été redirigée vers un tout nouveau fichier que vous avez appelé sneakers.txt.

Vous pouvez trouver ce fichier dans le répertoire où vous étiez lorsque vous avez lancé cat (entrez ls si vous voulez le voir dans la liste).

Vous pouvez même utiliser cat pour lire le fichier, en entrant

cat sneakers.txt

à l'invite.

AttentionN'écrasez pas les fichiers
 

Faites attention lorsque vous redirigez la sortie vers un fichier car vous pourriez facilement écraser un autre fichier ! Assurez-vous que le nom du fichier que vous créez n'est pas identique au nom d'un fichier déjà existant, à moins de vouloir le remplacer.

Utilisons la redirection de sortie pour un autre fichier que nous appellerons home.txt. Entrez ce qui suit :

[newuser@localhost newuser]$ cat > home.txt
bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!

Placez-vous sur une ligne vierge et utilisez, une fois de plus, les touches Ctrl-D pour quitter cat.

Jetons un coup d'oeil au fichier, en entrant

cat home.txt

à l'invite.

Utilisez cat encore une fois pour associer home.txt avec sneakers.txt et rediriger la sortie des deux fichiers vers un tout nouveau fichier appelé saturday (vous trouverez un exemple dans la Figure 10-9). Entrez ce qui suit :

[newuser@localhost newuser]$ cat sneakers.txt home.txt > saturday

Figure 10-9. Association de fichiers et redirection de la sortie

Il est maintenant temps de vérifier votre travail. Entrez

[newuser@localhost newuser]$ cat saturday

et vous devriez obtenir ce qui suit à l'écran :

[newuser @localhost newuser]$ cat saturday
buy some sneakers
then go to the coffee shop
then buy some coffee
bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!
[newuser @localhost newuser]$

Vous pouvez constater que cat a ajouté home.txt à l'endroit où se termine sneakers.txt.

TuyauCombinaison de fichiers au moyen de cat
 

La création et la combinaison de petits fichiers à l'aide de cat peut être une alternative pratique à l'utilisation d'un éditeur de texte comme Pico.

Concaténation de la sortie standard

Il vous est possible d'utiliser la redirection de la sortie pour ajouter de nouvelles informations à la fin d'un fichier existant. De façon semblable à l'utilisation du symbole >, vous indiquez au shell d'envoyer les informations à un endroit autre que la sortie standard.

Toutefois, lorsque vous utilisez >>, vous ajoutez des informations plutôt que d'en remplacer.

La meilleure façon de comprendre est d'en faire l'essai, alors prenez les deux fichiers qui ont déjà été créés (sneakers.txt et home.txt) et regroupez-les au moyen du symbole de concaténation de sortie. Vous devez ajouter les informations de home.txt aux informations existantes dans sneakers.txt, alors entrez :

cat home.txt >> sneakers.txt

Vérifiez le fichier en entrant cette commande :

cat sneakers.txt

Le voici et le contenu de home.txt apparaît à la fin.

La commande que vous avez entrée a indiqué au système de "concaténer la sortie du fichier home.txt au fichier sneakers.txt".

La concaténation de la sortie permet de vous épargner une étape ou deux (et une bonne dose d'encombrement du disque) en utilisant des fichiers déjà existants, plutôt qu'en créant un nouveau fichier.

Comparez les résultats des fichiers sneakers.txt et saturday, et vous verrez qu'ils sont identiques. Entrez :

cat sneakers.txt; cat saturday

Le contenu des deux fichiers affiche d'abord sneakers.txt et ensuite saturday (tel que montré dans la Figure 10-10).

AttentionAttention de ne pas remplacer le fichier lorsque vous procédez à sa concaténation
 

Rappelez-vous que lorsque vous concaténez une sortie, vous devez inclure deux symboles supérieur à (>>), sinon vous obtenez le remplacement du fichier auquel vous désirez ajouter des informations.

Figure 10-10. Enchaînement de commandes et comparaison de fichiers

Redirection de l'entrée standard

Non seulement vous est-il possible de rediriger la sortie, mais aussi d'exécuter le même type de redirection avec l'entrée standard.

Lorsque vous utilisez le symbole de redirection de l'entrée standard <, vous indiquez au shell que vous désirez qu'un fichier soit lu comme entrée d'une commande.

Utilisez un fichier que vous avez déjà créé pour illustrer ce concept. Vous n'avez qu'à entrer cette commande :

cat < sneakers.txt

Comme vous avez utilisé le symbole inférieur à (<) pour séparer la commande cat du fichier, la sortie de sneakers.txt a été lue par cat.