cat stands for Concatenate. cat command is one of the basic command in Linux & Unix. It is used to create new files, concatenate files and and also used to view the contents of files on the standard output. In this article, we will learn cat command with 16 quick examples.
Basic syntax of cat command :
# cat <options> <File>
Options:
Example 1) Create file with cat command
Let’s suppose i want to create a new file with name ‘linux_world’. Type the following cat command followed by the text you want in to insert in the file. Make sure you type ‘Ctrl-d’ at the end to save the file.
[root@linuxtechi ~]# cat > linux_world Hi this is my first file in linux. Linux always rocks Thanks [root@linuxtechi ~]#
Example 2) View the Content of a file
To display or view the content of existing file using cat command, use the below syntax
# cat {file_name}
To view the contents of linux_world file, run
[root@linuxtechi ~]# cat linux_world Hi this is my first file in linux. Linux always rocks Thanks root@linuxtechi ~]#
Example 3) View the content of multiple files
To view the content of multiple files with cat command, then type cat followed the file names, example is shown below
[root@linuxtechi ~]# cat linux_world linux_distributions /etc/fstab
Above command will display output of three files on the terminal.
Example 4) View content page wise
For example if we have a large file whose contents can’t be displayed at once on the screen. So in that case we can use more and less command with cat to view the contents page wise.
[root@linuxtechi ~]# cat /etc/passwd | more [root@linuxtechi ~]# cat /etc/passwd | less
Example 5) cat command without filename arguments
if we don’t specify any arguments in the cat command then it will read the inputs from the keyboard attached to the system. Type some text after entering the cat command.
[root@linuxtechi ~]# cat Ubuntu Linux Rocks at desktop Level
Now press ‘Ctrl-d‘ to inform cat that it has reached end of file (EOF). In this case it will display the line of text twice because it copies std input to std output.
[root@linuxtechi ~]# cat Ubuntu Linux Rocks at desktop Level Ubuntu Linux Rocks at desktop Level [root@linuxtechi ~]#
Example 6) View the content with line numbers
Use ‘-n’ option in cat command to view content of a file along with the line numbers.
[root@linuxtechi ~]# cat -n linux_world 1 Hi this is my first file in linux. 2 Linux always rocks 3 Thanks [root@linuxtechi ~]#
In case, if your file has blank lines , then above command will also display the number of blank lines as well, so to remove the numbering of blank lines , we can use ‘-b‘ option in place of ‘-n’ in the above command.
Example 7) Copy content from one file to another
Using greater than ‘>‘ symbol in cat command, we can copy the contents of one file to another , example is shown below :
[root@linuxtechi ~]# cat linux_world > linux_text [root@linuxtechi ~]#
In this case, if there are any contents in linux_text file then it will be overwritten by the contents of linux_world file
Example 8) Append content of one file to another
Using double greater than symbol ‘>>‘ in cat command, we can append the contents of one file to another. Example is shown below :
[root@linuxtechi ~]# cat /etc/passwd >> linux_text [root@linuxtechi ~]#
Above Command will append the contents of /etc/passwd file to linux_text file at the end. Use cat command to verify the contents of linux_text file.
Example 9) Redirecting the output of multiple files into a single file
cat command can also be used to merge the content of multiple files into a single file, example is shown below:
[root@linuxtechi ~]# cat linux_world linux_distributions /etc/fstab > linux_merge_text
Above command will merge the output of 3 files into a single file ‘linux_merge_text’.
Example 10) Getting input using standard input operator
Use ‘<‘ symbol in cat command to get input from standard input operator.
[root@linuxtechi ~]# cat < linux_distributions RHEL CentOS Fedora Ubuntu SuSE Linux Mint [root@linuxtechi ~]#
Above cat command is getting input from the file using std input operator ‘<‘
Example 11) Sorting the output of multiple files into a single file
cat command can also sort the content of multiple files and merge it into a single file.By default sorting will done on the alphabetic order, if you want the sorting on the basis of numbers then use ‘-n’ option in the sort command.
[root@linuxtechi ~]# cat linux_text linux_distributions /etc/passwd | sort > linux_sort
Example 12) Insert $ at end of each line
If you wish to append $ (dolar) symbol at end of each line in the file then use ‘-E’ option in cat command.
[root@linuxtechi ~]# cat -E linux_world Hi this is my first file in linux.$ Linux always rocks$ Thanks$ [root@linuxtechi ~]#
As we can see in the above output, $ is appended at the end of each line.
Example 13 Display tab spaces in the content
Let’s assume we have a file which has some tab spaces in the content. To view the tab spaces in the contents of a file with cat command, use using -T option. Example is shown below:
Let’s create a file with some tab spaces.
Now display these tab spaces as ^I
Example 14) Squeeze repeated blank lines
Use ‘-s’ option in cat command to suppress the repeated blank lines. When we use -s option in cat command then it only show one blank line and will squeeze repeated blank line.
Let’s take am example of file ‘linux_blank’ , which consists of multiple repeated blank lines.
Now remove the repeated blank lines in the output using below command.
[root@linuxtechi ~]# cat -s linux_blank test test1 test2 test3 test4 [root@linuxtechi ~]#
Example 15 ) View the content in reverse order
tac is the reverse of cat command. tac will display the output in revers order example is shown below
[root@linuxtechi ~]# tac linux_world Thanks Linux always rocks Hi this is my first file in linux. [root@linuxtechi ~]#
Example 16 ) Display non-printing characters (-v)
-v option in the cat command is used to show the non-printing characters in the output. This option become useful when we are suspecting the CRLF ending lines, in that case it will show ^M at the end of each line.
[root@linuxtechi tmp]# cat test_file hi there
[root@linuxtechi tmp]# cat -v test_file hi there^M [root@linuxtechi tmp]#
That’s all from article and i hope these examples are informative to you. Please do share your feedback and Comments.
Read Also : 11 df command examples in Linux
The following command does not work.
sudo cat hosts >> /etc/hosts.
That’s why. I do …
1) sudo su
2) cat hosts >> /etc/hosts
Is there a single command to achieve the result of the above two commands ?
@Kumar
Do
$ cat hosts | sudo tee /etc/hosts
You can do the following:
cat hosts | sudo tee /etc/hosts
tee (which is executed with sudo rights) will write the output to /etc/hosts and print it to standard out.
Did you try
su -c ‘cat hosts >> /etc/hosts’
Be careful, Examples 4 and 11 are winners of the “Useless use of cat award,” which is often the case when you pipe cat output to another command.
how do you modify the cat command to show only the last paragraph of a textfile