うさみ日記

東京都日野市からまいりました宇佐見直人です。ITとかマーケとかの話や、勉強した話なんかをするよ。

linuxサーバでlsコマンドを使って画像ファイルのリストを作ってそっから商品リストと照らし合わせて、みたいな話。

なんというか、
ITに触れ始めた頃の自分に書くつもりで、
実践的なことを書いとくと誰かしら見るかしら。
それに自分がボケ始めた時に見たらボケがばれにくいかしら。
と思ったのでメモ。

流れとしては
「某商品検索サイトの商品の中で、
 画像が有る/無いものを知りたい!
 ついでに何枚有るかも知りたい。
 だって写真増やしたら受注増えそうじゃない?
 ウフフ!オッケー♪

 でも商品のDBには画像が有るか無いか書いてなくて、
 画像があるかどうかわからん!
 実際のファイルを調べなきゃ!」
みたいなシチュエーションだとしますわな。



そもそも根本的な作りがダメなんじゃないの?
という意見もありそうな感じだけども。
気にしない。




■1.サーバにログイン
 login as: hogehoge
hogehoge@hogehoge's password:
 で、パスワードを入れてログインする。
 (Linuxの前提です。ちなみにサーバはCentOS使ってます。)


■2.商品画像リストを作成する
 以下のコマンドを入力して、エンター。
 $ ls -R /var/www/www.hogehoge.com/public_html/images/ | grep jpg > /home/hoge/jpglist.txt
 
 以下、ご説明。

 ls … ファイルやフォルダのリストを作ってくださいなコマンド。
 -R … lsコマンドのオプション。サブフォルダの中身も見てください、というお願い。
 /var以下 … リストを作る対象のフォルダの指定。
 「| grep jpg」 … 「jpgファイルだけ」というご注文。最初の「|」は「これもやってね」というご注文。
 「> /home/hoge/jpglist.txt」 … 「/home/hoge/jpglist.txtっていう名前のファイルに結果を出力して!」というお願い

 たった一行のコマンドで、

>> 「元気?いつもがんばってくれてありがとう。
  ところで、ちょっと仕事をお願いしたいんだ。
  実は/var/www/www.hogehoge.com/public_html/images/っていうフォルダの中に入っている
  jpgファイルのリストを作成してほしい。
  そう。jpgだけでいいんだ。gifやフォルダ名はいらない。jpgだけ。
  あ、手間をかけて申し訳ないけど、サブフォルダの中も全て確認してくれるかな。

  結果のリストはそうだな、jpglist.txtっていうファイルを作って、
  /home/hoge/に置いといてもらえると助かる。

  納期はこれ言うとまた怒られちゃいそうだけど、なるはやでお願いしたいんだ。
  どうしてもすぐに使いたいんだよ。
  おれはいいんだけどほら上のアレがいつも突然くるからさ。
  もちろん忙しいのはわかってる、申し訳ない!
  今日の今日とかマジかんべんだよな?
  ほんといつもごめんな〜。」<<
 というようなことを伝えているわけです。

 目と手でやったらえらい手間だけど、
 サーバさんこういう地味な作業めっちゃ得意だから、
 お願いしちゃいましょう。


■3.アクセスやりエクセルに取りこむ
 例えば、商品番号がcsvかなにかで手元にあれば
 accessの「外部データ>インポート>テキストファイルのインポート」で
 商品リストをインポートして「商品名テーブル」とかいう名前のテーブルを作って
 今度はさっきのjpglist.txtをインポートして「写真リストテーブル」とかなんかテーブルを作る。

 この写真リストを作る時に、
 写真のファイルの名前は商品番号とその商品の写真の通し番号になってて
 「1234_p1.jpg」とか、商品番号を使っている前提で。
 「_」でセパレートしておいて、
 物件番号と写真の通し番号があるテーブルを作る。

 ここまで来たら二つのテーブルをクエリでつないで
 Σマークを押して、
 商品番号でグループ化・写真の通し番号をカウント
 とかやるとイイ感じ。

 アクセス無ければエクセルでvlookup使うとかそんなんで、
 有り無しはわかるかと思う。

 こちらも目と手でやったらえらい手間。
 商品数が多いともう絶望さえ感じそう。


■4.補足
 もちろん他にもいろいろやり方は有るし、
 いろいろな環境的制約でこのやり方ができないことがあると思う。
 「webサーバ上でPG書いて確認すればいいんじゃないの?次にやるのが楽じゃん。」
 「もともと商品テーブルに写真有無の項目があればいいんじゃない?」
 「いやいやMySQL上で写真の管理テーブル作ってそれだけ見るのは?」
 「そもそもマイクロソフトのアクセスが無いんですけど?」
 「商品写真のファイル名に商品番号使ってないんですけど?」
 とかね。


でもまぁ、
とりあえずこんなやり方もあるよなー、
というメモです。

もちろんwindowsでもおんなじようなファイルリスト作ったりもできる。
ああ、コンピューターって便利。