mdfindのクエリ

課題でmdfindを使う必要が出てきたのでメモ

mdfindでCファイルを見つけたい。 mdfindはメタデータを使って引っ張ることができるようだ。

しかし,メタデータはどうやって調べるのか

メタデータ属性にどのようなものがあるのかを知るには,'mdls' コマンド

あの日,mdfind が見つけたもの - ばかもりだし

メタデータにはどんなデータがあるか調べるには,mdlsというコマンドを使えば良いらしい。 mdldに引数と与えるだけでメタデータが見られるようだ。

メタデータ確認用にCファイルを作って試してみる

touch test.c
mdls test.c

するとこのように表示された

_kMDItemOwnerUserID            = 501
kMDItemContentCreationDate     = 2015-12-20 09:00:55 +0000
kMDItemContentModificationDate = 2015-12-20 09:00:55 +0000
kMDItemContentType             = "public.c-source"
kMDItemContentTypeTree         = (
    "public.c-source",
    "public.source-code",
    "public.plain-text",
    "public.text",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemDateAdded               = 2015-12-20 09:00:55 +0000
kMDItemDisplayName             = "test.c"
kMDItemFSContentChangeDate     = 2015-12-20 09:00:55 +0000
kMDItemFSCreationDate          = 2015-12-20 09:00:55 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = (null)
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = (null)
kMDItemFSLabel                 = 0
kMDItemFSName                  = "test.c"
kMDItemFSNodeCount             = (null)
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 501
kMDItemFSSize                  = 0
kMDItemFSTypeCode              = ""
kMDItemKind                    = "C source"
kMDItemLogicalSize             = 0
kMDItemPhysicalSize            = 0

この中で使えそうなのは,kMDItemKind = "C source"あたり。

mdfind kMDItemKind = "C source"

実行! ・・・ 何も表示されない


もう一個使えそうな kMDItemContentType = "public.c-source"とか使ってみる。

mdfind kMDItemContentType = "public.c-source"

すると.cファイルがずらずらと表示された。

kMDItemKindでは表示できない理由は分からないが.cファイルを表示することができた。


2017/11/09追記

kMDItemDisplayName 使ったほうがよさそう?

mdfind kMDItemDisplayName = "*.c"

とかで.

MySQLでランダムな数値が入ったデータを用意する

ランダムな数値データが入ったDBが作りたい

課題でMySQLでランダムな数値が入ったデータが大量に必要になったので,その作り方をメモしておく


  1. 適当なテーブルを作る
  2. まずは,1つ空のデータを入れる
  3. データの数を倍にする
  4. データの成形
  5. 必要な数以上は消す
  6. ランダムな数値を入れる

適当なテーブルを作る

create table tb1(id int, num int);

まずは,1つ空のデータを入れる

insert into tb1() values();

tb1をtb1に挿入する(倍にしていく)

insert into tb1(id) select 0 from tb1;

これを好きなだけ繰り返す


管理用にIDに番号をふる

idの値を連番で値を入れる

set @i=0;
update tb1 set id=(@i := @i+1);

欲しい数で削除する

30万のレコードが欲しい場合

delete from tb1 where id > 300000;

なんてやれば良い。


ランダムな値を入れる

ランダムな1〜30000の数値を入れてみる

update tb1 set num = ceil(rand() * 30000);

Source code

ソースコードを貼る方法を調べてみたら,はてな記法とMarkdown両方いけるっぽい。

さて,テストで貼ってみよう。
ん?表示されない??

調べてみると編集モードが違うらしい?
f:id:zeronosu77108:20151107140827p:plain:w300

編集があって,HTMLがあって,プレビューがあったら編集ではてな記法もMarkdownも使えると思うよね(-ω-)

f:id:zeronosu77108:20151107141122p:plain:w300
ここに編集モード切替発見

やっとソースコードのテストができる。

はてな記法とMarkdownどちらが良いのか。。

とりあえず,はてな記法で書いてみる。

#!/bin/bash
echo "Test"

少し前までKobitoでずっと授業のノートを取っていたから,Markdownはだいたい覚えてるけど,とりあえず面白そうなはてな記法を少しやってみて覚えられなさそうだったらMarkdownにしますかな

エディター的にMarkdownになるかもしれないけど(・∀・)