On 29/03/2022 09:07, Iago-lito wrote: > Hello, > >     This is a follow-up to this (yet) unanswered post on SE U&L: > https://unix.stackexchange.com/q/696259/87656, which I'm cross-posting > here. Don't hesitate to fire if it's the wrong place. > > 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? The info doc is clearer that the output of missing fields need to be explicitly enabled, https://www.gnu.org/software/coreutils/join : ‘-e STRING’ Replace those output fields that are missing in the input with STRING. I.e., missing fields specified with the ‘-12jo’ options. I agree that the man page should mention this also, which I've done in the attached. Marking this as done. thanks, Pádraig