q2K BHP
Black History Portal
THE BHP WIRE —
HIDDEN TRUTHS
What's New!
THE JOURNEY THROUGH TIME

Explore Black History

Explore the people, places, events, achievements, struggles and stories that shaped our journey.

✊🏾

Civil Rights

Movements, leaders, victories and the continuing fight for equality.

⚙️

Black Inventors

Innovation, patents, science, technology and world-changing contributions.

🏆

Sports

Pioneers, champions, Negro Leagues, records, activism and excellence.

♟️

People

Meet the people whose lives, choices and achievements shaped the journey.

📍

Places

Black towns, communities, institutions and places where history happened.

📜

Events

Moments that changed communities, movements, institutions and the nation.

Enter a person, place, event, or topic.
MY'STORY

The MOVE Fire

This is a personal recollection on the Move fire on May 13, 1985 Philadelphia police fired thousands of rounds at the MOVE house, city officials approved dropping an explosive device on the roof, the resulting fire was allowed to burn, 11 people—including five children—died, and 61 homes were destroyed. Philadelphia City Council later called it a “brutal attack carried out by the City of Philadelphia on its own citizens” and acknowledged that no individual faced criminal consequences for the bombing. One timeline correction worth preserving for the BHP record: the major previous MOVE-police confrontation was August 8, 1978, about seven years before the bombing, not a year or two earlier. Officer James Ramp was killed, other police and firefighters were wounded, nine MOVE members were later convicted, and television cameras recorded police beating Delbert Africa during his arrest. The 1985 MOVE Commission later specifically criticized city planners for failing to adequately use lessons from that 1978 confrontation. And that actually strengthens the point you’re making: 1985 did not happen without precedent or institutional memory. There had already been a deadly confrontation with MOVE, years of conflict, negotiations and police involvement before Osage Avenue.

MORE →
BLACK FACTS
The Truths They Never Taught You...

Ruler of the Mali Empire in the 14th century

Mansa Musa was the ruler of the Mali Empire in West Africa. Details recorded here should be sourced; unknown information is left blank.

MORE →
BHP gathered finds from its connected research sources. Showing the 4 strongest Black History matches.
← BACK TO RESULTS
Wikipedia

join (Unix)

join
Original authorDouglas McIlroy
DeveloperAT&T Bell Laboratories
ReleaseJanuary 1979; 47 years ago (1979-01)
Written inC
Operating systemUnix, Unix-like, Plan 9
PlatformCross-platform
TypeCommand
Licensecoreutils: GPLv3+
Plan 9: MIT License

join is a command in Unix and Unix-like operating systems that merges the lines of two sorted text files based on the presence of a common field. It is similar to the join operator used in relational databases (specifically, it implements the sort-merge join algorithm) but operating on text files.

Overview

[edit]

The join command takes as input two text files and several options. If no command-line argument is given, this command looks for a pair of lines from the two files having the same first field (a sequence of characters that are different from space), and outputs a line composed of the first field followed by the rest of the two lines.

The program arguments specify which character to be used in place of space to separate the fields of the line, which field to use when looking for matching lines, and whether to output lines that do not match. The output can be stored to another file rather than printed using redirection.

As an example, the two following files list the known fathers and the mothers of some people. Both files have been sorted on the join field — this is a requirement of the program.

george jim
kumar gunaware
albert martha
george sophie

The join of these two files (with no argument) would produce:

george jim sophie

Indeed, only "george" is common as a first word of both files.

Examples

[edit]

To find Pythagorean triples of the form (k, k+1, n).

$ join <(for i in {1..9999} ; do printf -- '%010d\t%s\t%s\t%s\n' "$((2*i*(i+1)+1))" "$i" "$((i+1))" ; done) <(for i in {1..9999} ; do printf -- '%010d\t%s\n' "$((i**2))" "$i" ; done)
0000000025 3 4  5
0000000841 20 21  29
0000028561 119 120  169
0000970225 696 697  985
0032959081 4059 4060  5741

History

[edit]

join is intended to be a relation database operator. It is part of the X/Open Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX.1 and the Single Unix Specification.[1][2]

The version of join bundled in GNU coreutils was written by Mike Haertel.[3] The command is available as a separate package for Microsoft Windows as part of the UnxUtils collection of native Win32 ports of common GNU Unix-like utilities.[4]

See also

[edit]

References

[edit]
  1. ^ printf – Shell and Utilities Reference, The Single UNIX Specification, Version 5 from The Open Group
  2. ^ printf(1) – FreeBSD General Commands Manual
  3. ^ join(1) – Linux General Commands Manual from ManKier.com
  4. ^ "Native Win32 ports of some GNU utilities". unxutils.sourceforge.net. Archived from the original on 2006-02-09. Retrieved 2026-02-03.
[edit]

Source: Wikipedia. Article content is retrieved live through the MediaWiki API.

No preview image
Wikipedia

Join (Unix)

join is a command in Unix and Unix-like operating systems that merges the lines of two sorted text files based on the presence of a common field. It is similar to the join operator used in relational databases (specifically, it implements the sort-merge join algorithm) but operating on text files.

MORE →
No preview image
Wikipedia

Join

Join may refer to: Join (law), to include additional counts or additional defendants on an indictment In mathematics: Join (mathematics), a least upper bound of sets orders in lattice theory Join (topology), an operation combining two topological spaces Join (category theory), an operation combining two categories Join (simplicial sets), an operation combining two simplicial sets Join (sigma algebra), a refinement of sigma algebras Join (algebraic geometry), a union of lines between two varieties In computing: Join (relational algebra), a binary operation on tuples corresponding to the relation join of SQL Join (SQL), relational join, a binary operation on SQL and relational database tables join (Unix), a Unix command similar to relational join Join-calculus, a process calculus developed at INRIA for the design of distributed programming languages Join-pattern, generalization of Join-calculus Joins (concurrency library), a concurrent computing API from Microsoft Research Join Network Studio of NENU, a non-profit organization of Northeast Normal University Joins.com, the website for South Korean newspaper JoongAng Ilbo Joining (woodworking), woodworking processes of combining two or more pieces of wood together, generally through the use of nails.

MORE →
No preview image
Wikipedia

Sort-merge join

The sort-merge join (also known as merge join) is a join algorithm and is used in the implementation of a relational database management system. The basic problem of a join algorithm is to find, for each distinct value of the join attribute, the set of tuples in each relation which display that value. The key idea of the sort-merge algorithm is to first sort the relations by the join attribute, so that interleaved linear scans will encounter these sets at the same time. The essential principle is implemented, for example, by the traditional Unix join command. In practice, the most expensive part of performing a sort-merge join is arranging for both inputs to the algorithm to be presented in sorted order. This can be achieved via an explicit sort operation (often an external sort), or by taking advantage of a pre-existing ordering in one or both of the join relations. The latter condition, called interesting order, can occur because an input to the join might be produced by an index scan of a tree-based index, another merge join, or some other plan operator that happens to produce output sorted on an appropriate key. Interesting orders need not be serendipitous: the optimizer may seek out this possibility and choose a plan that is suboptimal for a specific preceding operation if it yields an interesting order that one or more downstream nodes can exploit.

MORE →
Wikipedia

Douglas McIlroy

Malcolm Douglas McIlroy (born April 24, 1932) is an American computer scientist, mathematician, and programmer. As of 2019 he is an Adjunct Professor of Computer Science at Dartmouth College. McIlroy is best known for having originally proposed Unix pipelines and developed several Unix tools, such as echo, spell, diff, sort, join, graph, speak, and tr. He was also one of the pioneering researchers of macro processors and programming language extensibility. He participated in the design of multiple influential programming languages, particularly PL/I, SNOBOL, ALTRAN, TMG and C++. His seminal work on software componentization and code reuse makes him a pioneer of component-based software engineering and software product line engineering.

MORE →
TOPIC OF THE DAY

Greenwood / Black Wall Street

Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.

MORE →
TRIVIA QUESTION OF THE DAY

Who was the first African-American woman millionaire in the United States?

Madam C.J. Walker