J'ai vu la commande cat apparaître dans certains trucs en ligne et j'étais curieux de savoir ce qui a cat
fait et à quoi cela sert dans le contexte de quelqu'un qui fait juste des trucs en ligne de commande simples.
la source
J'ai vu la commande cat apparaître dans certains trucs en ligne et j'étais curieux de savoir ce qui a cat
fait et à quoi cela sert dans le contexte de quelqu'un qui fait juste des trucs en ligne de commande simples.
cat
« s but principal est de con chat fichiers Enate. cat file1 file2 ...
affichera le contenu de file
, file2
et les autres l'un après l'autre, comme si le contenu était dans un seul fichier. Voir la page de manuel :
NAME
cat - concatenate and print files
Il est destiné à une utilisation où:
une commande cible ne peut pas lire les fichiers et vous devez lui passer plusieurs fichiers. Un exemple est l' tr
utilitaire. Normalement, avec un seul fichier, vous feriez:
tr < file
Mais avec plusieurs fichiers, la redirection ne peut pas être utilisée, vous devez donc faire:
cat file1 file2 ... | tr
wc
, qui imprime les décomptes pour chaque fichier, ainsi que les noms de fichiers, où vous auriez pu vouloir juste le total, sans nom de fichier.Rappelez - vous que la plupart des commandes que vous rencontrez ( grep
, sed
, awk
, sort
, ...) peut lire les fichiers parfaitement bien.
Si vous souhaitez afficher le contenu d'un fichier, utilisez un pager - less
et more
sont tous deux parfaitement capables de présenter des fichiers à visualiser et sont beaucoup plus pratiques à utiliser.
< <(cat file[12]) tr
ainsi que<<<$(cat file[12]) tr
les deux moyens parfaitement valides pour rediriger plusieurs fichiers. Bien sûr, vous avez également besoincat
de cela, juste que la tuyauterie n'est pas le seul moyen.cat
est l'une des commandes les plus utilisées sur les systèmes d'exploitation de type Unix. Il a trois fonctions liées aux fichiers texte:La syntaxe générale de cat est:
Lecture de fichiers
L'utilisation la plus courante de cat est de lire le contenu des fichiers, et cat est souvent le programme le plus pratique à cet effet. Tout ce qui est nécessaire pour ouvrir un fichier texte à visualiser sur le moniteur d'affichage est de taper le mot chat suivi d'un espace et du nom du fichier puis d'appuyer sur la touche ENTER. Par exemple, ce qui suit affichera le contenu d'un fichier nommé file1:
Enchaînement
Le deuxième rôle du chat est la concaténation. (Ceci est la source du nom curieux du chat.) Il n'y a aucun effet sur les fichiers originaux.
Par exemple, la commande suivante concaténera des copies du contenu des trois fichiers file1, file2 et file3:
Le contenu de chaque fichier sera affiché sur l'écran du moniteur. Cette sortie pourrait tout aussi bien être redirigée à l'aide de l'opérateur de redirection de sortie vers un autre fichier, tel que file4, en utilisant les éléments suivants:
Création de fichiers
Merci au commentaire @muru : cat est capable de créer de nouveaux fichiers en fonction de la fonction de redirection du shell et non de lui-même
Pour les petits fichiers, cela est souvent plus facile que d'utiliser vi, gedit ou d'autres éditeurs de texte. Cela se fait en tapant cat suivi de l'opérateur de redirection de sortie et du nom du fichier à créer, puis en appuyant ENTERet enfin en appuyant simultanément sur les touches Ctrl& d.
Par exemple, un nouveau fichier nommé file1 peut être créé en tapant
puis appuyez sur ENTERet appuyez simultanément sur les touches Ctrl& d.
PS1: Si un fichier nommé file1 existe déjà, il sera écrasé
PS2: vous pouvez ajouter au fichier quitté à l'aide de l'
>>
exemple d' opérateur d'ajout cat >> file1Copier des fichiers
La commande cat peut également être utilisée ( selon la fonction de redirection du shell) pour créer un nouveau fichier et y transférer les données d'un fichier existant. Exemple: faites une copie du fichier
oldfile.txt
:Les références:
la source
cat
ne crée pas ces fichiers - le shell est lorsque vous avez utilisé la redirection. Vous auriez aussi bien pu faireecho foo > file1
.cat
ce qui est réellement fait par autre chose. Par exemple, faireless file1 > file2
(ougrep '.*' file1 > file
ouawk 1 file1 > file2
ou ...) a le même effet. Idem pour 4. Ce ne sont que des abus.> file
et donner le même résultat, mais ne puis-je pas le considérer comme valide pour le faire avec un chat?!cat
ne crée pas le fichier. Direcat
crée ou copie le fichier est tout simplement faux.Il peut être utilisé pour afficher le contenu d'un fichier. Par exemple:
cat "my file.txt"
. Vous pouvez également faireman cat
pour vous montrer les détails sur ce quicat
peut être utilisé.la source
Voici une autre façon de créer des fichiers en utilisant la redirection shell (ou piping) et
cat
:cat << EOF
affichera les lignes suivantes jusqu'à ce que la chaîneEOF
soit rencontrée à nouveau. Ensuite>
(>>
) redirigera la sortie vers le fichierfoo.sh
. Alternativement, si vous devez créer un fichier en tant que root, vous pouvez diriger la sortie vers la commandetee
(tee -a
), exécutée par la commandesudo
:chmod +x
) s'il est créé avec succès (&&
).$
) doit être échappée (avec\
) dans la sortie decat
.la source