忘れないようにメモっとく

機械学習とかプログラミングとか。

awkで重複行を高速削除する。

awkで重複行を高速削除する。

行の重複削除で調べるとよく出てくるのが、sort & uniqを使ったコマンド。 ソートはファイルが大きくなると、実行にかなり時間がかかってしまいますね。

ソートせずに高速実行できるのが、次のawkコマンド。

awk '!colname[$1]++{print $1}'

こういうファイルがあって、一列目の名前を取得したいとき、!colname[$1]は、データをキーにした連想配列で、インクリメントされる。

ボブ りんご          | colname["ボブ"] → 0 {print $1}
マイケル まんが      | colname["マイケル"] → 0 {print $1}
マイケル まんが       | colname["マイケル"] → 1
サブロー PC         | colname["サブロー"] → 0 {print $1}
サブロー キーボード   | colname["サブロー"] → 1
ステファン PC       | colname["ステファン"] → 0 {print $1}
サブロー まんが       | colname["サブロー"] → 2
ステファン まんが     | colname["ステファン"] → 1

条件として!をつけているので、二回目以降はFalseとなって、そのデータが最初に現れた行だけを出力するというわけ。ソートは要らないね。

対象の列番号を変えたいときは、上のコマンドの$1を$2とか$3とかにすればおk。

Evernoteをもっとカッコよく使うためのChrome拡張

Markdownを使おう

ad

みんな大好きEvernote。 ちょっとしたノート代わりに書き込んだり、Todoメモや備忘録としても使えて、何よりクラウドで共有できるのが便利ですよね。 自分も思いついたことは何でもEvernoteに書き溜めているのですが、文字の大きさとか文の構造とかをカッコよく、サクサク書けたらなと考えていました。

いろいろ探してみたところ、Markdown記法で書けるようになる拡張機能が良さげなので、Chromeに追加してみました。

ちなみに、Markdown記法ってなに?っていう人。Markdown記法の特徴は、

  • 文構造が直感的で覚えやすい。
  • htmlタグより簡単に書ける。
  • 表とか数式も表示できる。
  • プラットホームを選ばない。

という感じでしょうか。 とっても簡単です。くわしくはこのあたりを。Markdown記法 チートシート

Markdown Here

追加したアプリは、 Markdown Here というChrome拡張機能です。 safarifirefoxでも動作するみたいです。

アプリを追加したら、EvernoteにMarkdownで書き込んで....

f:id:Akiniwa:20140324211246p:plain

ショートカットキーで「Ctrl」+「alt」+「m」と打つと、一発でMarkdownに変換されます。かっちょいー!!

f:id:Akiniwa:20140324211424p:plain

ちなみにHTMLタグも変換してくれるので、HTMLに慣れてて、Markdown覚えるのめんどくさいという方にもオススメです。

D3.jsでカタカタ動くやつ

コードの説明あとで書く