Join command fails to output fields on input file with DOS line endings.
Eliot Moss
moss@cs.umass.edu
Mon Jul 22 19:58:00 GMT 2019
On 7/22/2019 3:50 PM, Andy Hall wrote:
> This behavior of join surprised me:
>
> $ join -1 3 <(echo a b col3 c d | unix2dos) <(echo col3 f2 f3 f4 f5)
> f2 f3 f4 f5
>
> Join parses the input line well enough to execute the join, but the presence of the DOS line endings suppresses the
> output of fields from the first input.
>
> Compare with
>
> $ join -1 3 <(echo a b col3 c d) <(echo col3 f2 f3 f4 f5)
> col3 a b c d f2 f3 f4 f5
>
> which is correct.
>
> Here is a weirder example where the join field is missing and the output is reversed!
>
> NOK
> $ join <(echo col F1 | unix2dos) <(echo col F2)
> F2 F1
>
> OK
> $ join <(echo col F1) <(echo col F2)
> col F1 F2
The lesson is: You're better off not using DOS line endings with Cygwin.
It tends to do things the POSIX way, where the line ending is LF, not
CR LF. Some things *may* work, but it's somewhat hit or miss ... EM
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list