La commande Cat sous Linux - La concaténation expliquée avec des exemples Bash

Cat dans Linux signifie concaténation (pour fusionner les choses ensemble) et est l'une des commandes Linux les plus utiles et polyvalentes. Bien qu'elle ne soit pas aussi mignonne et câline qu'un vrai chat, la catcommande Linux peut être utilisée pour prendre en charge un certain nombre d'opérations utilisant des chaînes, des fichiers et des sorties.

La commande cat a trois objectifs principaux impliquant des fichiers texte:

  • Créer
  • Lecture / Affichage
  • Mettre à jour / modifier

Nous passerons en revue chacun de ces éléments à tour de rôle pour afficher les commandes et les options associées à chaque opération.

Commencer

Pour commencer, créons quelques fichiers appelés foo.txt et spam.txt.

Commençons par créer foo.txt avec la commande cat > foo.txtde la ligne de commande Linux.

Attention: s'il existe déjà un fichier nommé foo.txt, la catcommande utilisant l'opérateur> le remplacera.

De là, l'invite affichera une nouvelle ligne qui nous permettra de saisir le texte que nous voulons. Pour cet exemple, nous utiliserons:

FILE 1 foo bar baz 

Pour revenir à la ligne de commande et créer le fichier texte, nous utilisons CTRL + D.

Créons maintenant spam.txt avec cat > spam.txtet insérons ce qui suit:

FILE 2 spam ham eggs 

Si nous voulions ajouter ou ajouter plus de texte à ces fichiers, nous utiliserions cat >> FILENAMEet saisirions le texte que nous voulons utiliser.

Notez que l'opérateur >> est utilisé pour ajouter par opposition à l'opérateur>.

Au lieu d'avoir à ouvrir un éditeur de texte, nous avons pu créer un fichier texte simple et rapide à partir de la ligne de commande, ce qui nous fait gagner du temps et des efforts.

La principale chose à retenir de cette section est que nous utilisons cat > FILENAMEpour créer ou écraser un fichier. De plus, nous pouvons utiliser cat >> FILENAMEpour ajouter à un fichier qui existe déjà. Ensuite, après avoir tapé le texte que nous voulons, nous utilisons CTRL + D pour quitter l'éditeur, revenir à la ligne de commande et créer le fichier.

Lecture arc-en-ciel

Maintenant que nous avons créé quelque chose, jetons un coup d'œil à ce que nous avons fait.

Remarquez que nous n'avons pas d'opérateur> ou >> dans la commande suivante, seulement cat et le nom de fichier.

La commande cat foo.txtaffichera les éléments suivants:

FILE 1 foo bar baz 

Alors cat foo.txt, nous allons lire le fichier, mais voyons ce que nous pouvons faire d'autre.

Supposons que nous voulions déterminer le nombre de lignes d'un fichier sur lequel nous travaillions. Pour cela, l'option -n est pratique.

Avec la commande, cat -n foo.txtnous pouvons voir la durée de notre fichier:

 1 FILE 1 2 foo 3 bar 4 baz 

Avec -n, nous pouvons avoir une idée du nombre de lignes du fichier avec lequel nous travaillons. Cela peut être utile lorsque nous itérons sur un fichier d'une longueur fixe.

Fichiers concaténants

Ok, donc nous avons vu que chat peut créer et afficher des fichiers, mais qu'en est-il de les concaténer (les combiner)?

Pour cet exemple, nous utiliserons les fichiers foo.txt et spam.txt. Si nous voulons avoir de la fantaisie, nous pouvons jeter un œil au contenu des deux fichiers en même temps. Nous utiliserons à nouveau la commande cat, cette fois en utilisant cat foo.txt spam.txt.

cat foo.txt spam.txt donne les résultats suivants:

FILE 1 foo bar baz FILE 2 spam ham eggs 

Notez que ce qui précède AFFICHE uniquement les deux fichiers. À ce stade, nous ne les avons pas encore concaténées dans un nouveau fichier.

Pour concaténer les fichiers dans un nouveau fichier que nous voulons utiliser, cat foo.txt spam.txt > fooSpam.txtce qui nous donne le résultat dans un nouveau fichier fooSpam.txt.

En utilisant les cat fooSpam.txtsorties suivantes vers le terminal:

FILE 1 foo bar baz FILE 2 spam ham eggs 

Cette commande est également utile lorsque nous voulons concaténer plus de deux fichiers dans un nouveau fichier.

Les points à retenir ici sont que nous pouvons afficher plusieurs fichiers avec cat FILENAME1 FILENAME 2.

De plus, nous pouvons concaténer plusieurs fichiers en un seul fichier avec la commande   cat FILENAME1 FILENAME 2 > FILENAME3.

Autres activités amusantes à faire avec les chats

Disons que nous travaillons avec un fichier et que nous continuons à recevoir des erreurs pour une raison quelconque avant la fin du fichier - et il semble qu'il pourrait avoir plus de lignes que prévu.

Pour étudier un peu plus le fichier et éventuellement résoudre notre problème, nous pouvons utiliser le commutateur -A. L'option -A nous montrera où les lignes se terminent par un $, elle nous montrera les caractères de tabulation avec un ^ I, et elle affichera également d'autres caractères non imprimables.

Si nous regardions un exemple de fichier texte non imprimable avec cat nonPrintExample.txtnous pourrions obtenir quelque chose comme ceci:

         

Ce qui est OK mais peut ne pas nous dire une histoire complète d'un caractère ou d'une chaîne qui pourrait nous causer des problèmes.

Alors que cela cat -A nonPrintExample.txtpourrait nous donner une sortie plus utile:

^I^I$ $ ^L$ $ ^G^H^H^H^Y^I^N^O^P^@$ ^@^@^[g^[f^[d^[g^[6^[5^[4^[6^[=$ $ $ ^X$ 

Ici, nous obtenons une représentation plus claire de ce qui pourrait se passer entre les onglets, les sauts de ligne, les retours et d'autres caractères.

Ce qu'il faut retenir ici, c'est que cat -A FILENAME peut nous donner des détails plus détaillés sur le fichier avec lequel nous travaillons.

Cet article devrait vous donner un bon aperçu de la commande cat, de ce qu'elle peut faire et de ses fonctionnalités.