texte d'écho avec une nouvelle ligne dans bash


35

Je voudrais ajouter du texte à un fichier. J'ai donc écrit en bash

echo text >> file.conf

Mais cela ne laisse pas de nouvelle ligne. Je ne peux donc faire cela qu'une seule fois. Comment ajouter une nouvelle ligne?


5
Que voulez-vous dire? Une nouvelle ligne supplémentaire ? echoajoute une nouvelle ligne par défaut.
pause jusqu'à nouvel ordre.

4
echopar défaut, laisse une nouvelle ligne - en avez-vous besoin pour en laisser deux? De plus, si vous exécutez cela sur un système Linux et ouvrez le fichier sur un système Windows ou Mac, assurez-vous que votre éditeur prend en charge les nouvelles lignes * nix, ou il apparaîtra sur une seule ligne même s'il est sur plusieurs lignes.
Dark Android

Réponses:


79

Option 1:

% echo -e "text\n" >> file.conf

Option 2:

% ( echo text ; echo "" ) >> file.conf

option 3:

% echo text >> file.conf
% echo ""  >> file.conf

7
Vous pouvez supprimer l'argument vide ( echo ""=> echo). De plus, l'option 4:, echo $'text\n'qui est utile pour toute commande telle que la $''est interprétée par bash.

7

Je pense que la bonne réponse devrait être que votre commande

echo text >> file.conf

ajoute une ligne supplémentaire, mais après le nouveau texte, pas avant.

Je suppose que vous voulez ajouter une ligne supplémentaire avant ce texte, probablement parce que votre fichier initial ne se termine pas par une nouvelle ligne. Dans ce cas, vous pouvez utiliser

echo -e "\ ntext" >> file.conf

à la place, car l' -eoption vous permet d'utiliser le nouveau \ncaractère de ligne .


3

Pour ajouter à la réponse d'Akira

Option 4:

utilisez ctrl-v ctrl-mles combinaisons de touches deux fois pour insérer deux caractères de contrôle de nouvelle ligne dans le terminal. Ctrl-v vous permet d'insérer des caractères de contrôle dans le terminal. Vous pouvez utiliser la touche entrée ou retour au lieu du ctrol-m si vous le souhaitez. Il insère la même chose.

Cela finit par ressembler à echo text^M^M >> file.conf


2
Si vous avez besoin de sauts de ligne au lieu de retours chariot (linux / unix), essayez de echo "text^J^J" >> file.conftaper ^ J pourrait en fait insérer une nouvelle ligne littérale, assurez-vous simplement de mettre les guillemets et ce sera bien.
Dark Android
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.