GNU bug report logs -
#54625
Why do I need to specify `-o auto` for join's `-e` option to work?
Previous Next
Reported by: Iago-lito <iago-lito <at> cleb.io>
Date: Tue, 29 Mar 2022 13:28:01 UTC
Severity: normal
Done: Pádraig Brady <P <at> draigBrady.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#54625: Why do I need to specify `-o auto` for join's `-e` option to work?
which was filed against the coreutils package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 54625 <at> debbugs.gnu.org.
--
54625: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=54625
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
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
[join-e-usage.patch (text/x-patch, attachment)]
[Message part 5 (message/rfc822, inline)]
[Message part 6 (text/plain, inline)]
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?
(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.
)
--
Iago-lito
[Message part 7 (text/html, inline)]
This bug report was last modified 3 years and 49 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.