With the following two simple files:
a.txt
1 a
2 b
5 c
b.txt
2 x
4 y
5 z
The following command does not behave like expected:
$ join -a 1 -a 2 -e 0 a.txt b.txt
1 a
2 b x
4 y
5 c z
I would expect the option -e 0
to fill up missing
values with zeroes. However, the following does work:
$ join -a 1 -a 2 -e 0 -o auto a.txt b.txt
1 a 0
2 b x
4 0 y
5 c z
Reading documentation from $ man join
, I see no
connection between -o
and -e
that
would make the above behaviour meaningful.
Instead, I find it misleading that a useless -o auto
needs to be inserted into my command for -e 0
to
work..
Is there an explanation, to be clarified in the manpage? Or is it a bug?
(btw:
$ join (GNU coreutils) 9.0
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute
it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Haertel.
)