How to Append Contents of Multiple Files Into One File on Linux?


Introduction

There are many situations where you may need to combine the contents of multiple files into one file. For example, you may have a number of log files that need to be analyzed or you may want to merge multiple text documents into one document for easy editing. On Linux, there are several ways to aggregate the contents of multiple files into a single file, and in this article, we'll explore some of the most popular and effective methods.

Method 1: Use the cat command

The "cat" command is a powerful tool on Linux that allows you to view and concatenate the contents of multiple files. To add the contents of multiple files into a single file using the "cat" command, follow these steps −

  • Open a terminal window and navigate to the directory where the files you want to add are located.

  • Use the "ls" command to list the files in the directory.

  • Type the following command, replacing "file1" and "file2" with the names of the files you want to add −

$ cat file1 file2 >> combined_file
  • Press Enter to execute the command.

The ">>" operator adds the contents of "file1" and "file2" to the end of the "combined_file", creating it if it doesn't already exist. If you want to add the contents of more than two files, simply add the names of the additional files to the command.

For example, to add the contents of three files named "file1", "file2", and "file3", use the following command −

$ cat file1 file2 file3 >> combined_file

You can also use wildcards to add the contents of multiple files at once. For example, to add all text files in the current directory, you can use the following command −

$ cat *.txt >> combined_file

Method 2: Using the echo command

The "echo" command is another simple and effective way to add the contents of multiple files to a single file in Linux. To use the echo command to add the contents of multiple files, follow these steps −

  • Open a terminal window and navigate to the directory where the files you want to add are located.

  • Type the following command, replacing "file1" and "file2" with the names of the files you want to add −

$ echo " " >> combined_file
$ echo "Contents of file1:" >> combined_file
$ cat file1 >> combined_file
$ echo " " >> combined_file
$ echo "Contents of file2:" >> combined_file
$ cat file2 >> combined_file
  • Press Enter to execute the command.

This command uses the "echo" command to add a blank line and header to the file "combined_file", followed by the contents of "file1" and "file2". If you want to add the contents of more than two files, simply add additional "echo" and "cat" commands for each file.

Method 3: Use the sed command

The "sed" command is a powerful tool in Linux that allows you to find and replace text in a file. You can also use the "sed" command to add the contents of multiple files into a single file. To use the "sed" command to add the contents of multiple files, follow these steps:

  • Open a terminal window and navigate to the directory where the files you want to add are located.

  • Type the following command, replacing "file1" and "file2" with the names of the files you want to add −

$ sed '$ a
' file1 file2 >> combined_file
  • Press Enter to run the command.

The "$" operator in the "sed" command specifies the end of the file, and the "a" command means "add". The text following the "a" command is appended to the end of the file. In this case, we're using the "" character to escape the newline character, which allows us to add the contents of "file1" and "file2" to the end of the "merged_file" file on separate lines.

If you want to add the contents of more than two files, simply add the names of the additional files to the command. For example, to add the contents of three files named "file1", "file2", and "file3", use the following command −

$ sed '$ a
' file1 file2 file3 >> combined_file

Method 4: Using the paste command

The "paste" command is another useful tool in Linux that allows you to merge the contents of multiple files into one file. To use the paste command to add the contents of multiple files, do the following −

  • Open a terminal window and navigate to the directory where the files you want to add are located.

  • Type the following command, replacing "file1" and "file2" with the names of the files you want to add −

$ paste file1 file2 >> combined_file
  • Press Enter to run the command.

Press Enter to run the command. The "paste" command combines the contents of "file1" and "file2" into a single file, with each line of each file separated by a tab character. If you want to add the contents of more than two files, simply add the names of the additional files to the command.

Conclusion

In this article, we have explored four different methods to aggregate the contents of multiple files into a single file on Linux. Each method has its advantages and limitations, and the best method for your specific needs will depend on your specific project requirements. Regardless of which method you choose, the ability to merge multiple files into a single file is a powerful tool in Linux that can save you time and effort when working with large volumes of data.

Updated on: 25-Jan-2023

23K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements