join(1)
β¨ 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 fileFILENUM, whereFILENUMis1or2, corresponding toFILE1orFILE2. like, "even the lonely ones get to come to the party" energy π«Ά
possible values:
12
-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:
12
-e <EMPTY>β replace missing input fields withEMPTY. no empty chairs at this table β¨-i,--ignore-caseβ ignore differences in case when comparing fields.HELLOandhello? same thing bestie, we don't discriminate π-j <FIELD>β equivalent to-1 FIELD -2 FIELD. one flag, two jobs, multitasking queen π-o <FORMAT>β obeyFORMATwhile constructing output line. you're the director now π¬-t <CHAR>β useCHARas input and output field separator. set the vibe, keep the vibe π-1 <FIELD>β join on thisFIELDof file 1.-2 <FIELD>β join on thisFIELDof 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 isNUL, 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