キーにスペースがある接続を使用する

キーにスペースがある接続を使用する

両方のファイルをマージするためにJoinコマンドを使用するのに問題があります。最初のファイルはcsvファイルです。

NAIN GENIEU 01/01/1900,A,B
NAIN GENIEUR 01/01/1917,C,D
NAINGENIEUR 21/01/1917,E,F

2番目のファイルには興味深いIDのみが含まれています。

NAIN GENIEUR 01/01/1917

私はこれを出力として欲しい:

NAIN GENIEUR 01/01/1917,C,D

どちらのファイルもsortbash コマンドを使用してソートされます。引数なしで結合を使用すると、デフォルトでは空白が使用されるため、結合は行われますが、空白の後は何もPSEUDO考慮しません。パラメータを使用すると、出力はまったく表示されません(必要があるにもかかわらず)。BIRTHDAYPSEUDO-t","

この問題を解決する方法についての手がかりはありますか?ところで、私はJoin v.8.4を使用しています。

編集する最初のフィールド(スペースを含めることができます)の周りに引用符を入れようとしましたが、役に立ちませんでした。

ベストアンサー1

あなたのフィールドが(少なくともあなたの例では)「full csv」と呼ばれるファイルに「PSEUDO BITHDAY」フィールドがあり、2番目のファイルに「PSEUDO BI」フィールドが一致しません。THDAY "2番目のファイルには追加のRがあります。

-t オプションは、すべてのバージョンの Join で使用できます。

編集する: あなたの模範は私にとって効果的です

    bash-4.1$ join -t, a b
    NAIN GENIEUR 01/01/1917,C,D
    bash-4.1$ join --version
    join (GNU coreutils) 8.4
    Copyright (C) 2010 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://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.
    bash-4.1$

おすすめ記事