Vraag Commando om een ​​regel toe te voegen aan een tekstbestand zonder een editor te openen


Ervan uitgaande dat ik een lijn die ik wil toevoegen aan een bestand zonder een editor te openen.

Hoe kan ik deze regel toevoegen

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

naar dit bestand

config.fish

125
2018-01-14 19:00


oorsprong




antwoorden:


U kunt een toevoegen lijn van tekst naar een bestand met behulp van de >> operator:

echo "hello world" >> my_file.txt

of in jouw geval

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

Let op de verschillende soorten offertes.


202
2018-01-14 19:09



Ik gebruik zelf een echo, maar pas op, als je er alleen een opgeeft > dan zal het bestand afkappen, niet toevoegen. voor een veiliger commando kun je sed gebruiken: sed -i '$a hello world' filename - invert
uitleg: -i zal het bestand updaten (anders drukt het alleen het resultaat af naar stdout), $ is regex dat overeenkomt met het einde van het bestand, en a voegt de volgende tekst toe aan bestandsnaam. - invert
echo "hello world" >> my_file.txt maakt geen nieuwe laatste regel aan met HW, maar voeg het toe aan de reeks van de laatste regel. - Timo
Wat is HW @timo? - 7wp
Misschien "Hallo Wereld" @ 7wp :) Het is echo Hiermee wordt de regeleinde toegevoegd (waardoor het een regel is in tegenstelling tot slechts een aantal tekens). Je kunt het einde van de regel aan het einde uitschakelen met -n. - Stefano Palazzo♦


Er zijn voldoende methoden om bestanden aan te passen zonder teksteditors te openen, met name via meerdere beschikbare tekstverwerkingsprogramma's in 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





Toevoegen aan Stefano's antwoord, je kan ook gebruiken cat:

  • Een heredoc gebruiken:

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

    <<'EOF' betekent "neem het volgende als invoer, totdat u een regel bereikt die rechtvaardig is EOFDe citaten betekenen om de input letterlijk te nemen.

  • Of voer de regel in op stdin:

    $ cat >> config.fish
    

    Plak dan of typ in de regel, druk op invoeren om naar een nieuwe regel te gaan en druk vervolgens op Ctrl + D om het einde te markeren.


1
2018-06-17 23:05