You can use the cat command to append data or text to a file. The cat command can also append binary data. The main purpose of the cat command is to display data on screen (stdout) or concatenate files under Linux or Unix like operating systems. To append a single line you can use the echo or printf command.
Tutorial details | |
---|---|
Difficulty | Easy (rss) |
Root privileges | No |
Requirements | cat on Linux or Unix |
Time | 1m |
Redirection symbol
- >> filename : Appends standard output to file.
Syntax
The syntax is:
cat file >> file2
echo 'text to append' >> file2
printf "text to append\n" >> fileName
Examples
Create a text file called foo.txt, type:
cat > foo.txt This is a test. I like Unix operating systems.
To save the changes press CTRL-d i.e. press and hold CTRL and press d. Create another text file called bar.txt as follows:
echo 'For desktop usage I prefer Apple OS X unix operating systems.' > bar.txt
Display both files on sceen, enter:
cat foo.txt cat bar.txt
To append a contains of bar.txt to to foo.txt, enter:
cat bar.txt >> foo.txt cat foo.txt
To append a ‘Use unix or die’ text to foo.txt file, enter:
echo 'Use unix or die' >> foo.txt cat foo.txt
Sample outputs:
Append text to a file when using sudo command
We can use the echo command or printf command to append data to a file called sales.txt in the current directory:
echo 'some data' | sudo tee -a sales.txt echo '1192.168.1.253 wireless-router' | sudo tee -a /etc/hosts
Want to append to a file? Try:
cat filename | sudo tee -a foo_file.txt
In this example append data using the following syntax:
sudo sh -c 'echo "192.168.1.253 wireless-router" >> /etc/hosts'
Verify it:
cat /etc/hosts
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
- RSS feed or Weekly email newsletter
- Share on Twitter • Facebook • 10 comments... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
when i execute two commands like echo $val(nn) > t.txt and awk -f throughput.awk wpan.tr >t.txt
i want the file t.txt to have two columns side by side leaving a tab or space in between. but i m getting output like this
7
81.85
7
67.09
pls help in this regard…thanks
I’m not sure I understood your query. To merge corresponding or subsequent lines of files try paste command.
Thanks.
Hi,
plz help me for below req.
I want to remove common numbers from two files.
ex: In file1 numbers are 1,2,3,4 and In file2 are 1,2,3,4,5,6,7,8,9,10.
I need a out like 5,6,7,8,9,10….
Plz help me
Thx in advances….
Sed command will suffice your requirement.
Cat text >> file
does not work if text is a directory name. Pitty as this would be a nice way to collect usefull paths in a file
sudo echo 'deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main 9.5' /etc/apt/sources.list.d/postgresql.list
Not working in ubuntu. Its saying Permission denied
echo 'deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main 9.5' | sudo /etc/apt/sources.list.d/postgresql.list
I want to edit an existing file by adding few text in after particular content in an xml file. How can we do this.
Thanks.