How to append multiple lines of text to a file?

16,749

Solution 1

Use:

nano /etc/apache2/apache2.conf

(you may need to use sudo)

This will give you a command line text editor that works much like normal text editors. Use the arrow keys to navigate. Backspace, enter, etc. work as normal.

To save, press Ctrl+O and use Ctrl+X to exit. For help, press Ctrl+G from inside nano, or use man nano.

It should look something like this:

nano

Solution 2

This syntax is called "HERE documents":

sudo tee -a /tmp/file <<EOF
<Directory "/var/www/*">
    Order allow,deny
    Allow from all
    AllowOverride All
</Directory>    
EOF

This solution is better than using ctrl-d since it can be used inside shell scripts.

Solution 3

Here's an easy way to do it, using cat .

% cat - >> testf
one
two
   three
four

You terminate your input with the CTRL-D .

This takes interactive input from cat (i.e., whatever you type in), and appends it to the existing file testf .

testf (with two original lines intact) will now look like this:

original line 1
original line 2

one
two
   three
four

As other answers have illustrated, you will need special syntax when editing files which you don't have write permission on. I find it easier to just switch to the root user for this, i.e., sudo su . But another easy method is to use tee with the append flag set, and called with sudo:

sudo tee -a >> config.conf

Share:
16,749

Related videos on Youtube

JD Isaacks
Author by

JD Isaacks

Author of Learn JavaScript Next github/jisaacks twitter/jisaacks jisaacks.com

Updated on September 17, 2022

Comments

  • JD Isaacks
    JD Isaacks over 1 year

    I want to append this text:

    <Directory "/var/www/*">
        Order allow,deny
        Allow from all
        AllowOverride All
    </Directory>
    

    to the file /etc/apache2/apache2.conf

    I have access via SSH but I don't know how to use VIM. I would like to do this via a command.

    • Admin
      Admin over 13 years
      Maybe I'm missing something, but why don't you use nano?
  • Admin
    Admin over 13 years
    You should make a backup first when blindly editing like this - it is very easy to mistype something and end up clobbering the whole file.
  • belacqua
    belacqua over 13 years
    I would agree with 'for use inside shell scripts, you will want to use HERE document syntax' .
  • uuu777
    uuu777 over 13 years
    btw, sometimes ctrl-d doesn't work. I once had to paste something in a file from a xen console running a initrd shell with incomplete terminal support; ctrl-c, ctrl-d etc didn't work, so I had to resort to HERO document also interactively.
  • uuu777
    uuu777 about 13 years
    yes, cat is often abused