• ベストアンサー

joinの-eオプション

joinの-eオプション 表題そのままですが、joinの-eオプションは 入力が無い場合の文字を決定するとありますが、 いろいろ試してみましたが、使い方がわかりません。 $cat tes1 1 2 3 4 5 6 #cat tes2 1 10 2 20 4 40 のようなファイルを 1 10 2 20 3 0 4 40 5 0 6 0 のように結合したいと思っています。 -e のオプションで可能でしょうか? もし不可能ならどのような方法があるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4854/10269)
回答No.1

join -a 1 -o 1.1 2.2 -e 0 tes1 tes2

s_h_i_b_a
質問者

お礼

お礼が遅れてしまいましたが、 ありがとうございます! 無事、行いたい動作ができました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • joinコマンド

    joinコマンド 自宅環境で再現できないのですが、 # cat tes1 1 2 3 4 5 ・ ・ ・ 110 # cat tes2 3 27 4 18 9 18 17 100 19 20 33 55 ・ ・ ・ 110 28 # join -a1 tes1 tes2 と実行したときに、tes2の10以下の数字までしか結合されず 1 2 27 3 18 4 18 5 6 7 8 9 19 10 11 ・ ・ ・ 110 のように表示されてしまいます。 もともとのtes1,tes2はsqlの結果を整形、タブ区切りにしています。 問題の起きたコードそのままではないのですが、 似たような経験をした方や、コマンドに詳しい方がいましたら、 原因についてアドバイス頂けると幸いです。

  • CentOS7のjoinコマンドの-eオプション

    CentOS7のjoinコマンドで2つのファイルの中身を接続したいのですが、 <File1> ta**@yahoo.jp hana**@yahoo.jp ji**@yahoo.jp - <File2> ta**@yahoo.jp 1 password1 hana**@yahoo.jp 2 password2 の場合、「File1にあるレコードの、カラム2、カラム3の値はカラム1が一致するFile2のレコードの対応数るカラム2、カラム3の値を引用する」と言う仕様で2ファイルを結合したいと思います。 「但し、File1にしかないレコードのカラム2、カラム3は固定文字 "0 PASSWORD0"を表示する」と言う仕様で、 https://okwave.jp/qa/q6294003.html?utm_source=twitterfeed&utm_medium=twitter を参考に、 $ join -1 1 -o 0 2.2 2.3 -a 1 -e "0 PASSWORD0" <(sort File1) <(sort File2) とやってみたところ、 ji**@yahoo.jp 0 PASSWORD0 0 PASSWORD0 hana**@yahoo.jp 2 password2 ta**@yahoo.jp 1 password1 と、ji**のレコードにカラム2、3が2回繰り返して表示されてしまいます。 二重引用符を外すと「join: 余分な演算子 '/dev/fd/62' と、原因不明のエラーが表示され、また、-e 0 -e PASSWORD0 と言う構文もエラーとなります。 ji**@yahoo.jp 0 PASSWORD0 hana**@yahoo.jp 2 password2 ta**@yahoo.jp 1 password1 と表示してくれたら解決なのですが、どう指定すれば正常な結果が得られるでしょうか?

  • javascript joinについて

    var options = new Array(); options.push("expires=" + d.toGMTString()); // 引数『key』『value』を元にした設定と、時刻の設定を、 // 文字列結合してクッキーに書き込み document.cookie = escape(key) + "=" + escape(value) + "; " + options.join("; "); // 『key=value; expires=時間』を書き込み 参考書で上記のような表現があります。 この場合のjoinは  expires= と d.toGMTString() の間に ; を入れるという意味かと思ったのですが どうやら違うみたいす。 検索しても解決できませんでした。どなたか御教授お願いします。

  • unixのコマンドでSQLのようにJOINする

    unixのコマンドでSQLのJOIN(直積)と同じことをする方法はありますか? やりたいのは同じ結合キーが複数行ある場合です。 入力ファイル1(結合キーは1列目) 1,AAA 2,BBB 2,CCC 3,DDD 入力ファイル2(結合キーは1列目) 1,PPP 2,QQQ 2,RRR 出力結果 1,AAA,PPP 2,BBB,QQQ 2,BBB,RRR 2,CCC,QQQ 2,CCC,RRR 結合キー「2」は入力ファイル1にも入力ファイル2にも2行づつ存在するので SQLのJOINと同じように組み合わせのパターン全部を出力し、 結合キー「3」は入力ファイル2には存在しないので出力したくありません。 もし簡単なコマンドがなければawkやperlを使うしかないでしょうか・・・。 環境はHitachi系のunixだったと思います(うろ覚え) ちなみにこういう質問はこのカテゴリ(Linux系OS)で合ってますでしょうか。プログラミングと迷ったのですが・・・。

  • joinで前に文字を結合させる方法

    $a = join($aaa,@a); 文字を結合する時に、$aaaのあとに結合するのではなく、$aaaの前に結合させることはできるのでしょうか? もし、できないとしたら前に結合する方法のアドバイスを下さい。

  • join関数で文字列を''で括りたい

    いつもお世話になっております。 SQLのQueryを生成するため、 配列をjoinしようと思ってます。 joinの値は文字列なので、シングルクオーテーションで括りたいと考えてるのですが、 うまい方法を探しております。 ご存知なら御教授いただきたいです。 今はjoinの配列にデータを入れる際にシングルクオーテーションを文字列結合しております。

    • 締切済み
    • PHP
  • JOINのネスト制限?

    基本的な問題かもしれませんが、SQLのJOINの使い方が判らないので教えて下さい。 SQLで A表とB表とC表をINNER JOINした表に対して、 D表をOUTER JOINした結果に対して、E表をINNER JOINしたいのですが、 SQL文で書くことは可能でしょうか? SELECT ((((cols FROM A INNER JOIN B ON --) INNER JOIN C ON --) OUTER JOIN D ON --) INNER JOIN E ON --) と単純に書くとネスト数のオーバーなのかエラーが出ます。 後ろの部分だとサブクエリーに対してJOINすればよいかもしれませんが、主ファイルに当る部分の場合はサブクエリーに切り出す方法が判りません。 よろしくお願いします。

  • 文字列操作 空白を空白のままJoinで結合させたいのです。

    文字列操作 空白を空白のままJoinで結合させたいのです。 エクセルのいくつかのセルの値を一旦Join で結合させ別BOOKに保存。その後、Split で各セルに書き戻ししてるのですが、空白セルがあると要素数がその分減ってエラーになってしまいます。 例  4つのセルの値の結合が空白が1つあると3つの要素になり、順次4つのセルに書き戻したいのですがエラーになる。 デリミタは$なので ""$555$420$1588 のようになればいいのですが。 どなたかお助け下さい。

  • テーブルを結合する構文はUNIONやJOINがありますが

    テーブルを結合する構文はUNIONやJOINがありますが この場合クエリー速度は1本のテーブルと複数のテーブルではどの程度 違うのでしょうか? また物理的に複数のテーブルを1つにしたい場合に何かいい方法は ないでしょうか。

    • ベストアンサー
    • MySQL
  • LEFT JOIN とRIGHT JOINの合体版のような結合方法。

    LEFT JOIN とRIGHT JOINの合体版のような結合方法。 使用DBはMySQL5.0.45です。 2つのテーブルの結合方式で、結合条件に合致しなかった場合、 両方のデータを結果セットに含めることはできますか? LEFT JOINだと、左側のテーブルのデータは結果に返ってきて、右側のデータはNULLになります。 RIGHT JOINだと、右側のテーブルのデータは結果に返ってきて、左側のデータはNULLになります。 これを「左側データあり右側NULL」「左側NULL右側データあり」というレコードを混ぜて結果として返したいです。 具体的には、 以下二つのテーブルがあるとします。 table : test1 value  id ------------------- ああ   3 いい   4 うう     5 table : test2 value  id -------------------- AAA   1 BBB   2 CCC   3 DDD   4 id を結合条件のキーとして、以下のような結果を得たいです。 NULL  NULL  AAA   1 NULL  NULL  BBB   2 ああ   3     CCC   3 いい   4     DDD   4 うう    5    NULL   NULL LEFT JOINだと以下の結果に、 SELECT * FROM test1 LEFT JOIN test2 ON test1.id=test2.id ああ   3     CCC   3 いい   4     DDD   4 うう    5    NULL   NULL RIGHT JOINだと以下の結果になってしまいます。 SELECT * FROM test1 RIGHT JOIN test2 ON test1.id=test2.id NULL  NULL  AAA   1 NULL  NULL  BBB   2 ああ   3     CCC   3 いい   4     DDD   4 以上、ご教示お願い致します。

    • ベストアンサー
    • MySQL