BLOGTIMES
«Prev || ... 462 · 463 · 464 · 465 · 466 · 467 · 468 · 469 · 470 ·... | | Next»
2017/03/23

join コマンドを使ってテキストファイルを結合する

cli 

GNU coreutils にはたくさんの便利なコマンドが含まれています。

シェルスクリプトにも良く出てくる sortuniq なんかもそのひとつですが、今回はちょっとマイナーな join を取り上げます。
実はこれを使うとテキストファイルでデータベースの表結合のような処理を簡単に行うことができます。

例えば以下のような ID と名前が書かれたファイルと、ID と成績が書かれたファイルがあるとします。
これを使って成績表を作りたいときに、実は join が使えると一撃で処理が可能です。

member.txt

1 松尾真奈美 2 尾形長次郎 3 山川和雄 4 外山心優 5 岩田和臣 6 浅田亜依 7 黒沢勇二 8 宮原広昭 9 北野喜三郎 10 桑原唯菜

grade.txt

2 S 4 C 8 D 3 C 6 A 1 A 9 C 7 S

これらのファイルではキーが先頭にあるので、以下のようにすることで結果を得ることができます。
デフォルトでは INNER JOIN のように結合可能された行だけが表示されます

$ join <(sort -k 1,1 member.txt) <(sort -k 1,1 grade.txt) 1 松尾真奈美 A 2 尾形長次郎 S 3 山川和雄 C 4 外山心優 C 6 浅田亜依 A 7 黒沢勇二 S 8 宮原広昭 D 9 北野喜三郎 C

ちなみにファイルを sort しているのは、キーが昇順でソートされていないとエラーが出てしまうから。これについてはマニュアルの 8.3.2 Pre-sorting にも記載があります。

ソースを読んだわけではありませんが、これは内部が伝統的なマッチング処理になっているからでしょうか。こういう話はホストで COBOL をいじったことがある年代の人ならばピンとくるかもしれませんが、SQL 全盛になってからはマッチング処理を自分で書くこともなくなってしまいましたからね。

$ join member.txt grade.txt 2 尾形長次郎 S 4 外山心優 C join: grade.txt:4: is not sorted: 3 C 8 宮原広昭 D join: member.txt:10: is not sorted: 10 桑原唯菜 9 北野喜三郎 C

ちなみに OUTER JOIN のように 結合されない行も含めて表示したいときは -a オプションを使います。
LEFT OUTER JOIN の場合には 1 、RIGHT OUTER JOIN の場合には 2 を指定する必要があります。

$ join <(sort -k 1,1 member.txt) <(sort -k 1,1 grade.txt) -a 1 1 松尾真奈美 A 10 桑原唯菜 2 尾形長次郎 S 3 山川和雄 C 4 外山心優 C 5 岩田和臣 6 浅田亜依 A 7 黒沢勇二 S 8 宮原広昭 D 9 北野喜三郎 C

マイナーなコマンドですが覚えておくと役に立ちます。


    at 20:21 |
    2017/03/23

    RHEL 6.9 リリース、RHEL 6 は Production 3 Phase に

    rhel 

    RHEL 6.9 がリリースされたようなのでメモ。

    このリリースが Production 3 Phase に入る前の最後のリリースということになるようです。RHEL のライフサイクルについては「Red Hat Enterprise Linux Life Cycle」に記載がありますが、製品としてのライフサイクルの終了を意味する Production 3 の終了は3年半後の November 30, 2020 となっているので、早めに RHEL 7 系統へのマイグレーションを考えておく必要があります。

    米Red Hat、「Red Hat Enterprise Linux 6.9」を一般公開 | OSDN Magazine

    RHEL 6系は3月10日にプロダクションフェイズ3に入っており、今後のアップデートは重要なセキュリティ修正とビジネスに影響する緊急の問題のみに限定されると開発チームは留意している。

      at 17:23 |
      2017/03/22

      Windows 10 Creators Update はまもなく?

      windows10 
      Windows10 Windows Update - Windows 10 Creators Update はまもなく?

      Windows 10 の Windows Update 画面に Windows 10 Creators Update についてのお知らせが出るようになっていたのでメモ。

      お待たせしました!間もなく Windows 10 Creators Update をお使いいただけます。いち早く手に入れる方法を確認しますか

      この画面で「はい。方法を確認する」というリンクをクリックすると以下の Windows Insider Program を勧めるヘルプページに飛ぶようになっていました。

      Windows 10 の新しい展開イメージを作らないといけないので、早いところ正式版がリリースされて欲しいんですが。。。。。


        at 23:40 |
        2017/03/22

        滋賀県の名物「飛び出し坊や」はどこにいる?

        看板・標識 
        メッシュごとの飛び出し坊やの報告件数 - 滋賀県の名物「飛び出し坊や」はどこにいる?
        琵琶湖博物館, "メッシュごとの飛び出し坊やの報告件数," フィールドレポーターだより, Vol.47, p.5, Feb. 2017.

        滋賀県に多い飛び出し坊やの看板 436 件を分析したレポートが琵琶湖博物館に掲載されたことがニュースになっていた*1のでメモ。

        僕も「けいおん!」のモデルとなった豊郷小学校旧校舎群!を訪れた時に、その近くに唯ちゃんの飛び出し坊やがあるのを目撃したことがありますが、この調査によると滋賀県の南部に多く分布しているということが分かります。

        興味がある方はぜひレポートの全文を読んでみてください。


        at 20:23 |
        2017/03/21

        Git に空ディレクトリをコミットする

        git 

        Git はファイルを管理するためのソフトウェアなので、ディレクトリだけ(つまり空のディレクトリ)をコミットすることは仕様上できません。

        tmp や log など、どうしてもディレクトリを空のままコミットしたいという場合にはダミーのファイルを作って入れる必要があるようです。ファイルはとにかく入ってさえいればいい(プレースホルダとしての意味しかない)ので名前に決まりはありませんが、一般的には .gitignore を使ったり、.gitkeep.keep という名前のファイルが使われているようです。

        .gitignore を使いたい場合には、ファイルの中身はこのような感じにしておくといいようです。

        .gitignore

        * !.gitignore

          at 22:03 |

          聖剣伝説 1 + 2 + 3 が Nintendo Switch で遊べる

          nintendoswitch  聖剣伝説 
          聖剣伝説コレクション

          スクエニが Nintendo Switch 向け聖剣伝説コレクションを 、6月1日に発売することを発表しました。価格はパッケージ版、ダウンロード版共に4,800円(税別)となっています。

          収録されているのは「聖剣伝説 ~ファイナルファンタジー外伝~」「聖剣伝説2」「聖剣伝説3」の3本。いわゆる聖剣1+2+3ですね。オリジナルの「聖剣伝説 ファイナルファンタジー外伝」はゲームボーイ、「聖剣伝説2」と「聖剣伝説3」はスーパーファミコンで発売されたソフトで、どれも発売当初よく遊んだソフトです。


            at 19:04 |
            2017/03/20

            過去5年間に 8.6% の企業は営業秘密の漏洩を経験

            ipa  report  informationleakage 

            IPA が企業における営業秘密管理に関する実態調査についての報告書を公開していたのでメモ。

            これによると過去5年間に 8.6% の企業は営業秘密の漏洩を経験しており、漏洩ルートは中途退職者よりも、現職従業員等のミスの方が圧倒的に多いという結果になっています。対策について中小が遅れているというのは、ハード・ソフトや人員等のリソースの問題があるので仕方ないと思いますが、ログの記録の実施が10%にとどまっているというのはちょっと残念な結果ですね。

            「企業における営業秘密管理に関する実態調査」報告書について:IPA 独立行政法人 情報処理推進機構

            漏えいルートは、現職従業員等のミスによるものが43.8%(前回調査の26.9%から増加)、中途退職者(正規社員)によるものが24.8%(前回調査の50.3%から減少)でした。
            中小規模企業ではシステム的対策、特に、「USBメモリの使用制御(5%前後)」や「システムログの記録・保管(10%前後)」等において、十分に取り組めていない傾向が顕著でした。
            大規模企業では「システムログの記録・保管(70~80%)」はすでに取り組めているといえる一方、「不自然なアクセスの上司/本人への通知(20%前後)」に代表されるような予防的な対策等はまだ十分に取り組めていない状況です。

              at 20:47 |

              Intel ARK に Android 版があった

              intel  android 
              Intel ARK - Intel ARK に Android 版があった

              Intel 製品のスペックを調べたい時には インテル® 製品の仕様情報(Intel ARK)が便利ですが、これの Android 版 アプリがリリースされていることが分かったのでメモ。

              サーバ室の中などで PC を持っていないときに、ちょっとスペックが知りたいということがたまにあるので、今後はこれを活用させてもらおうと思います。


                at 17:16 |
                2017/03/19

                椿山荘の庭園を散策

                tokyo  観桜  gardens 
                サクラ - 椿山荘の庭園を散策庭園 - 椿山荘の庭園を散策
                御神木 - 椿山荘の庭園を散策椿山荘 冠木口 - 椿山荘の庭園を散策

                神田川沿いを歩いていたら椿山荘の冠木口と書かれた裏門的な場所に着いてしまったので、庭園を散策していくことに。

                実は椿山荘は後輩の結婚式のときに一度来ているのですが、着いたのがギリギリだったので庭園の散策はしていなかったんですよね。

                ちょうどサクラが咲き始めていて、園内は華やかな雰囲気に包まれていました。


                  at 15:41 |

                  「新江戸川公園」が「肥後細川庭園」に

                  tokyo  観桜  gardens  肥後細川庭園 
                  サクラ - 「新江戸川公園」が「肥後細川庭園」にボケ - 「新江戸川公園」が「肥後細川庭園」に
                  モクレン - 「新江戸川公園」が「肥後細川庭園」に庭園全景 - 「新江戸川公園」が「肥後細川庭園」に
                  松聲閣 - 「新江戸川公園」が「肥後細川庭園」に肥後細川庭園の看板 - 「新江戸川公園」が「肥後細川庭園」に

                  新江戸川公園が文京区立 肥後細川庭園に生まれ変わったというニュースを見かけたので、さっそく出かけてみました。

                  東京のど真ん中に「肥後細川庭園」…新たに開園 : 社会 : 読売新聞(YOMIURI ONLINE)

                  東京都文京区目白台の「新江戸川公園」が18日、新名称「肥後細川庭園」としてスタートを切った。

                  早稲田駅から歩いて5分くらいでしょうか。リニューアルであちこち手が入ったのか、看板や庭園の扉などあちこち新しくなっています。園内はちょうどモクレンやボケが咲いており、さくらも少しずつ開花が始まっている感じでした。

                  昨日は開園のイベントをいろいろやったようですが、今日はのどかな休日という感じで、ゆったりと過ごすことができました。


                    at 14:49 |
                    «Prev || ... 462 · 463 · 464 · 465 · 466 · 467 · 468 · 469 · 470 ·... | | Next»