Commande pour ajouter une ligne à un fichier texte sans ouvrir d'éditeur


147

En supposant que j'ai une ligne que je veux ajouter à un fichier sans ouvrir un éditeur.

Comment pourrais-je ajouter cette ligne

alias list='ls -cl --group-directories-first'

à ce fichier

config.fish

Réponses:


237

Vous pouvez ajouter une ligne de texte à un fichier en utilisant l' >>opérateur:

echo "hello world" >> my_file.txt

ou dans votre cas

echo "alias list='ls -cl --group-directories-first'" >> config.fish

Veuillez prendre note des différents types de devis .


25
J'utilise echo moi-même, mais soyez prudent, si vous n'en spécifiez qu'un, >le fichier sera tronqué et non ajouté. Pour une commande plus sûre, vous pouvez utiliser sed:sed -i '$a hello world' filename
invert

12
explication: -imettra à jour le fichier (sinon, il imprimera simplement le résultat sur stdout), $sera une regex qui correspondra à la fin du fichier et aajoutera le texte suivant à nomfichier.
inverti le

echo "hello world" >> my_file.txtne crée pas une nouvelle dernière ligne avec HW, mais l'ajoute à la chaîne de la dernière ligne.
Timo

Qu'est-ce que HW@timo?
7wp

Peut-être que "Hello World" @ 7wp :) C'est ce echoqui ajoute le saut de ligne (ce qui en fait une ligne par opposition à un groupe de caractères). Vous pouvez désactiver la rupture de ligne à la fin avec -n.
Stefano Palazzo

3

Il existe de nombreuses méthodes pour ajouter des fichiers sans ouvrir d'éditeurs de texte, en particulier via plusieurs utilitaires de traitement de texte disponibles dans Ubuntu.

  • tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"
  • awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish" }'
  • sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fish

1

En ajoutant à la réponse de Stefano , vous pouvez également utiliser cat:

  • En utilisant un heredoc:

    $ cat >> config.fish <<'EOF'
    > alias list='ls -cl --group-directories-first'
    > EOF

    <<'EOF'signifie "prend ce qui suit en entrée, jusqu'à atteindre une ligne juste EOF". Les citations signifient prendre l’entrée littéralement.

  • Ou en entrant la ligne sur stdin:

    $ cat >> config.fish

    Ensuite, collez ou tapez la ligne, appuyez sur Enterpour aller à une nouvelle ligne, puis appuyez sur Ctrl + D pour marquer la fin.

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.