join(1)

πŸ“¦
version 0.7.0 Β· 4 versions
, in epel 10, fedora 43

✨ join(1) ✨

okay bestie, sit down, we're doing join today πŸ’– this one's a General Commands Manual situation and it's lowkey one of the most underrated little utilities in the whole toolbox. fr fr.


🌸 NAME 🌸

join β€” for each pair of input lines with identical join fields, write a line to standard output. the default join field is the first one, delimited by blanks.

and listen: when FILE1 or FILE2 (not both, bestie, pick one 😭) is -, it reads from standard input.


πŸŽ€ SYNOPSIS πŸŽ€

join [-a ] [-v ] [-e ] [-i|--ignore-case] [-j ] [-o ] [-t ] [-1 ] [-2 ]
[--check-order] [--nocheck-order] [--header] [-z|--zero-terminated]
[-h|--help] [-V|--version] <FILE1> <FILE2>

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so the whole vibe is this: for each pair of input lines with identical join fields, write a line to standard output. that's the main character move. the default join field is the first one, delimited by blanks. iconic behaviour honestly.

and when FILE1 or FILE2 (not both) is -, read standard input. yes it's that same - you already know and love. πŸ’…


πŸ‘‘ OPTIONS πŸ‘‘

  • -a <FILENUM> β€” also print unpairable lines from file FILENUM, where FILENUM is 1 or 2, corresponding to FILE1 or FILE2. like, "even the lonely ones get to come to the party" energy 🫢

possible values:

  1. 1
  2. 2
  • -v <FILENUM> β€” like -a FILENUM, but suppress joined output lines. so basically same energy, but the matched pairs don't show up at all. it's giving "solo era" πŸ’€

possible values:

  1. 1
  2. 2
  • -e <EMPTY> β€” replace missing input fields with EMPTY. no empty chairs at this table ✨
  • -i, --ignore-case β€” ignore differences in case when comparing fields. HELLO and hello? same thing bestie, we don't discriminate πŸ’–
  • -j <FIELD> β€” equivalent to -1 FIELD -2 FIELD. one flag, two jobs, multitasking queen πŸ‘‘
  • -o <FORMAT> β€” obey FORMAT while constructing output line. you're the director now 🎬
  • -t <CHAR> β€” use CHAR as input and output field separator. set the vibe, keep the vibe 🌈
  • -1 <FIELD> β€” join on this FIELD of file 1.
  • -2 <FIELD> β€” join on this FIELD of file 2.
  • --check-order β€” check that the input is correctly sorted, even if all input lines are pairable. yes, even then. it will look. πŸ‘€
  • --nocheck-order β€” do not check that the input is correctly sorted. minding my own business, respectfully πŸ™ˆ
  • --header β€” treat the first line in each file as field headers, print them without trying to pair them. they're just the labels bestie, let them live 🏷️
  • -z, --zero-terminated β€” line delimiter is NUL, not newline.
  • -h, --help β€” print help.
  • -V, --version β€” print version.

⭐ VERSION ⭐

v(uutils coreutils) 0.7.0

and that's the whole page, bestie 🧚 we did it. this was join from uutils coreutils, version 0.7.0, and that's the join(1) manual, no cap. go forth and pair some lines. mwah πŸ’œπŸ’…

πŸ“¦ where this page comes from
  • epel 10: rust-coreutils-devel 0.7.0-10.el10_3 Β· MIT
  • epel 10: uutils-coreutils 0.7.0-10.el10_3 Β· (MIT OR Apache-2.0) AND Unicode-DFS-2016 AND Zlib AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception) AND (Apache-2.0 OR GPL-2.0-only) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND CC0-1.0 AND ISC AND MIT AND (MIT OR Zlib OR Apache-2.0) AND (MIT-0 OR Apache-2.0) AND Unicode-3.0 AND (Unlicense OR MIT)
  • fedora 43: rust-coreutils-devel 0.7.0-12.fc43 Β· MIT
  • fedora 43: uutils-coreutils 0.7.0-12.fc43 Β· (MIT OR Apache-2.0) AND Unicode-DFS-2016 AND Zlib AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception) AND (Apache-2.0 OR GPL-2.0-only) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND CC0-1.0 AND ISC AND MIT AND (MIT OR Zlib OR Apache-2.0) AND (MIT-0 OR Apache-2.0) AND Unicode-3.0 AND (Unlicense OR MIT)
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms