Why does unix utility join yield different results on different Linux distributions? Why does unix utility join yield different results on different Linux distributions? unix unix

Why does unix utility join yield different results on different Linux distributions?


I found the answer. Here is part of the info join output for the newer version:

 `-o auto' If the keyword `auto' is specified, infer the output format from the first line in each file.  This is the same as the default output format but also ensures the same number of fields are output for each line.  Missing fields are replaced with the `-e' option and extra fields are discarded. Otherwise, construct each output line according to the format in FIELD-LIST.  Each element in FIELD-LIST is either the single character `0' or has the form M.N where the file number, M, is `1' or `2' and N is a positive field number. A field specification of `0' denotes the join field.  In most cases, the functionality of the `0' field spec may be reproduced using the explicit M.N that corresponds to the join field. However, when printing unpairable lines (using either of the `-a' or `-v' options), there is no way to specify the join field using M.N in FIELD-LIST if there are unpairable lines in both files.  To give `join' that functionality, POSIX invented the `0' field specification notation. All output lines--including those printed because of any -a or -v option--are subject to the specified FIELD-LIST.

Mystery solved although I still think it is unfortunate that a core unix utility has changed behavior between versions. This has taught me to re-read the documentation, when working on a new Linux distribution.