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 👨🏽💻