Créer un fichier sans éditeur

TL;DR Pour créer un nouveau fichier exemple.txt sous bash :

cat <<EOF >exemple.txt
Remplacer
ce texte
par le contenu du fichier
EOF

Sous certains Unix ou Linux minimalistes, il n’y a parfois pas d’éditeur de texte disponible (même vim ou nano). Par exemple dans des distributions orientées IoT ou dans des images Docker optimisées.

Pour initialiser un nouveau fichier vide, vous pouvez (entre autres) utiliser la commande cat, qui permet par ailleurs de faire bien d’autres choses.

cat /dev/null >exemple.txt

Si vous enlevez le premier argument, cat passe en mode interactif. Vous pouvez saisir votre texte directement et terminer par Control + D

cat >exemple.txt
...
...

Control + D

Cela fonctionne même si le contenu s’étend sur plusieurs lignes.

Vous pouvez également utiliser la syntaxe heredoc de bash, notamment si le Control + D ne fonctionne pas dans votre terminal.

Cette syntaxe utilise un délimiteur arbitraire défini lors de l’appel à cat. J’ai choisi EOF mais XXX conviendra également.

cat <<EOF >exemple.txt
...
...
EOF

Tout le contenu jusqu’au délimiteur est alors ajouté au fichier exemple.txt, y compris les sauts de lignes.

Note: le délimiteur n’est pas écrit dans le fichier.

Note 2: cat >exemple.txt écrase le fichier s’il existe déjà. Pour concaténer en fin de fichier, vous pouvez écrire cat >>exemple.txt

Plus d’infos sur la commande cat… sur Google 👨🏽‍💻

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *