> For the complete documentation index, see [llms.txt](https://linux-tutorial-cli.gitbook.io/linux-cli-tutorial/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://linux-tutorial-cli.gitbook.io/linux-cli-tutorial/txt-files/join.md).

# join

## join

The `join` command in Linux is used to combine two or more sorted files on a common field. The common field is called the join key. The join command outputs all records from the first file that have a matching record in the second file.

The `join` command takes the following arguments:

* `file1`: The first file to join.
* `file2`: The second file to join.
* `options`: Optional arguments that control the behavior of the `join` command.

The following are some of the most common options for the `join` command:

* `-a`: Prints all records from the first file, even if there is no matching record in the second file.
* `-o`: Specifies the fields to output.
* `-t`: Specifies the delimiter to use.

For example, the following command joins the files `file1.txt` and `file2.txt` on the field `name`:

```
join file1.txt file2.txt -t ' ' -o 1,2
```

The `join` command is a useful tool for combining data from different sources. It can be used to merge data from different databases, to join data from different spreadsheets, or to combine data from different files.

Here are some additional things to keep in mind about the `join` command:

* The `join` command must be run as root or by a user who has permission to access the files to be joined.
* The `join` command can only be used to join files that are located on the local machine.
* The `join` command cannot be used to join files that are located on a remote machine.

It is important to be aware of these limitations when using the `join` command, so that you do not accidentally join files that you do not have permission to join or that are located on a remote machine.

Here are some examples of how to use the `join` command:

* To join the files `file1.txt` and `file2.txt` on the field `name`:

```
join file1.txt file2.txt -t ' ' -o 1,2
```

* To join the files `file1.txt` and `file2.txt` on the field `name` and print all records from both files, even if there is no matching record in the second file:

```
join file1.txt file2.txt -t ' ' -a -o 1,2
```

* To join the files `file1.txt` and `file2.txt` on the field `name` and print the fields `name`, `age`, and `gender` from both files:

```
join file1.txt file2.txt -t ' ' -o 1,2,3
```

I hope this helps! Let me know if you have any other questions.

## help

```
```
