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


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

125
2018-01-14 19:00


origine




Réponses:


Vous pouvez ajouter un ligne du texte dans un fichier en utilisant le >> opérateur:

echo "hello world" >> my_file.txt

ou dans votre cas

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

S'il vous plaît prendre note de la différents types de citations.


202
2018-01-14 19:09



J'utilise moi-même l'écho, mais fais attention, si tu n'en spécifie qu'un > alors le fichier sera tronqué, pas ajouté. pour une commande plus sûre, vous pouvez utiliser sed: sed -i '$a hello world' filename - invert
explication: -i mettra à jour le fichier (sinon, il imprimera simplement le résultat à stdout), $ est une expression régulière qui correspondra à la fin du fichier, et a ajoute le texte suivant au nom du fichier. - invert
echo "hello world" >> my_file.txt ne crée pas une nouvelle dernière ligne avec HW, mais ajoutez-le à la chaîne de la dernière ligne. - Timo
Quel est HW @ timo? - 7wp
Peut-être que "Hello World" @ 7wp :) echo cela ajoute le saut de ligne (ce qui en fait une ligne par opposition à un groupe de caractères). Vous pouvez désactiver le saut de ligne à la fin avec -n. - Stefano Palazzo♦


Il existe de nombreuses méthodes pour ajouter des fichiers sans ouvrir les é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

2
2018-06-17 21:01





Ajouter à Réponse de Stefano, vous pouvez aussi utiliser cat:

  • En utilisant un heredoc:

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

    <<'EOF' signifie "prendre ce qui suit comme entrée, jusqu'à ce que vous atteigniez une ligne juste EOF". Les guillemets signifient prendre l’entrée littéralement.

  • Ou entrer la ligne sur stdin:

    $ cat >> config.fish
    

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


1
2018-06-17 23:05