min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

PHP フォルダ内の全てのテキストファイルの中身を1ページ内にまとめて表示する

Apacheで公開している自宅サーバのフォルダ内に、複数のテキストファイルがある。

f:id:min117:20170307120059p:plain

全てのテキストファイルの中身を確認したい。1つ1つ開いていくのは大変なので、index_txt.php をクリックするだけで、全てのテキストファイルの内容を1ページに表示できるようにする。

ーーー

ソース

$ vim index_txt.php

f:id:min117:20170307120539p:plain

拡張子が txt、log、ora のものを表示するようにする。

f:id:min117:20170307120635p:plainf:id:min117:20170307120657p:plain

表示してみる。index_txt.php をクリック。

f:id:min117:20170307121131p:plain

うまくいった。画面上部はファイルへのリンク。ファイル内容はWEBの1ページ内に全部まとめて表示される。

 

bash フォルダ内のテキストファイルの文字コードを一発で調べるコマンド

テキストファイルが4つあるが、このうち1つだけが文字コードが違っている。

$ ls -shal

f:id:min117:20170307113949p:plain

それぞれのファイルの文字コードを、コマンド1行(ワンライナー)で調べる。

$ for i in *txt; do echo "$i"; nkf -g "$i"; echo ===== ; done

f:id:min117:20170307114327p:plain

一つだけ Shift-JIS が混じっているのが分かった。

f:id:min117:20170307114622p:plain

 

RaspberryPi 3 形態素解析エンジンMeCabをインストールする

ツイッターで見かけたニュース。258億語の日本語を使った検索システム「梵天」が一般公開されるらしい。

internet.watch.impress.co.jp

記事中に MeCab の記載あり。以前から気になっていたので、RaspberryPi3 にインストールしてみる。

f:id:min117:20170306211850p:plain

インストール方法は書籍「シェルプログラミング実用テクニック」の p82 にあったのでそのままやってみる。

$ sudo apt-get -y install mecab libmecab-dev

$ sudo apt-get -y install mecab-ipadic-utf8

f:id:min117:20170306211646p:plain

インストールされた。

f:id:min117:20170306212247p:plain

上記書籍にある例のとおり使ってみる。

$ echo 私の血にはシェルが混ざっています。 |  mecab

f:id:min117:20170306212400p:plain

これはすごい。例えば名詞だけ抜き出したければ、mecabgrepを合わせればいいわけだ。

$ echo 私の血にはシェルが混ざっています。 |  mecab | grep 名詞

f:id:min117:20170306212546p:plain

すごい。これ、仕事でシステム統合するときに、例えば患者マスタの名寄せしたり姓名分割したりに使えるんじゃないの?後でいろいろ試す。

 

GoogleAdSense グーグルから「収益が確認額に達したことによる確認」の郵送物が来たので開封

 

Google AdSense から予告なく郵送物が送られて来た。「アカウントに関する重要なお知らせ」とある。

f:id:min117:20170306130241p:plain

キリトリ線に沿って切り離した。

f:id:min117:20170306130442p:plain

裏はこんな感じ。開けてみる。

f:id:min117:20170306130547j:plain

Google AdSense 個人識別番号(PIN)が書かれていた。

f:id:min117:20170306131647p:plain

アメリカ旅行でもしょっちゅう見かけたPINコードというもの。GoogleAdSenseの収益を入金してもらうのに使うようだ。

趣味のサイトなので収益は二の次だが、もらえるものはもらっておこう。郵送物の指示通りに進めていく。

ーーー

まずは www.google.com/adsense/ に行く。

f:id:min117:20170306131831p:plain

いつものアカウント選択の画面で、GoogleAdSense に使っているアドレスを選ぶ。

f:id:min117:20170306131954p:plain

「お客様の住所の確認が完了していないため、お客様のお支払いは現在保留中有となっています」とある。また、右上のベルマークに赤色の注意がある。

f:id:min117:20170306132157p:plain

右上のベルマークを押してみる。「操作」のリンクが出てきたのでクリック。

f:id:min117:20170306132340p:plain

「お客様の収益が、確認の基準額に達しました」とある(支払いの基準額ではないわけね)。画面下部に PINコード の入力画面があるので、ここに、郵送物にあったPINを入力する。

f:id:min117:20170306132416p:plain

画面右上から「お支払いのページを表示」してみる。

f:id:min117:20170306132700p:plain

お支払い基準額 には全然達していない(まだ14%)。それでも、この時点でアカウントの確認はする仕組みになっているようだ。「お支払い方法を追加」のリンクをクリックしてみる。

f:id:min117:20170306132725p:plain

収益を入金してもらう銀行口座を登録する画面が出てきた。

f:id:min117:20170306132848p:plain

登録したものの「入力値が無効です」となってしまう。よく読むと半角カタカナで入力とある。

f:id:min117:20170306133225p:plain

口座の確認のため(?)なのか、Googleデポジット(保証金)を入金してくれるようだ。その入金を確認後、ペイメントセンターなるリンクにアクセスし、デポジット金額を入力する流れらしい。

f:id:min117:20170306133707p:plain

「ペイメントセンター」のリンクをクリックしてみた。確かに金額入力欄がある。

f:id:min117:20170306133839p:plain

直後に銀行の入出金明細をオンラインで見てみたが、まだデポジットは入金されていないようだ。しばらく待ってみる。

bash ファイル名の年月日と時刻の間にアンダーバーを挿入する(正規表現・awk)

ハイビジョン録画ファイルの命名規則を途中で変えてしまった。

ーーー

① ファイル名の年月日時刻の間にアンダーバーある

$ ls | grep -e '^NHK_........_.*' | tail -n 3

NHK_20170304_070001.ts.mp4

f:id:min117:20170306114239p:plain

ーーーー

② ファイル名の年月日時刻の間にアンダーバーない

$ ls | grep -e '^NHK_........[0-9].*' | tail -n 3

NHK_20170113070002.ts.mp4

f:id:min117:20170306114232p:plain

ーーー

①で統一したい。まずは for文でキャプチャしてみる。

$ for i in `ls | grep -e '^NHK_........[0-9].*' | tail -n 3`; do echo "$i"; done

f:id:min117:20170306115040p:plain

できた。あとはアンダーバーを入れる処理を echo の次に入れる。これが難しい。

 NHK_20170113070002.ts.mp4

  ↓ アンダーバー挿入

 NHK_20170113_070002.ts.mp4

ーーー

処理としては

 NHK_20170113

までをまずは切り出して(手順①)、そのあとにアンダーバーを足して

 NHK_20170113_

にしてから、残りの

 070002.ts.mp4

を切り出して(手順②)連結し、最終的に

 NHK_20170113_070002.ts.mp4

になるようにする。

ーーー

手順①について。

bashで文字の切り出し(substr)が必要になる。awkできそう。

codezine.jp

 

スクリプトにする。

$ vim add_underBAR.sh

f:id:min117:20170306224632p:plain

実行してみる。

$ ./add_underBAR.sh

f:id:min117:20170306224817p:plain

手順① の切り出しはできた。同じ要領で手順②の切り出しもできる。

ーーー

アンダーバー挿入までのソース

$ vim add_underBAR.sh

f:id:min117:20170306225719p:plain

実行してみる。

$ ./add_underBAR.sh

f:id:min117:20170306225813p:plain

うまくいった。最後はファイル名変更(mv)すればよい。

ーーー

最終ソース

$ vim add_underBAR.sh

f:id:min117:20170306230523p:plain

実行してみる。

$ ./add_underBAR.sh

f:id:min117:20170306230552p:plain

完成。

bash 画像の撮影日時(EXIF)を「YYYYMMDD_HHMMSS」形式で取り出してファイル名に付ける(awkとsedで)

iPhoneで撮ったシンガポール旅行の写真を、Macの「写真」アプリに取り込み&書き出しを行ったら、ファイル名が「IMG_0775.JPG」のようになってしまった。これではいつとった写真か分からない

ーーー

(やりたいこと)

IMG_0775.JPG

 ↓

 ①ファイル内に持っている撮影日時EXIF情報)を取り出す

 ↓

 ②ファイル名に追加する

 ↓

20170228_124116_IMG_0775.JPG

 

ーーー

①をできるかテスト

f:id:min117:20170304131834p:plain

できた。

$ identify -verbose IMG_0775.JPG  | grep DateTime: | awk '{print $2"_"$3}' | sed -e s/://g

printの出力結果を加工するために青文字のところでアンダーバーをいれてるのがコツ

ーーー

ファイル1個(IMG_0775.JPG)を使って、変更後の名前がどうなるかテスト

f:id:min117:20170304132932p:plain

ほしい名前を作れることがわかった。

ーーー

あとは②をするためのfor文を作ればよい。スクリプトにする。

$ vim addEXIF.sh

f:id:min117:20170304133859p:plain

f:id:min117:20170304134011p:plain

実行

$ ./addEXIF.sh

f:id:min117:20170304133853p:plain

うまくいった。

ーーー

EXIF撮影日時情報がないときは処理しないように改良。

f:id:min117:20170304135914p:plain

格安SIM マレーシアの現地キャリアdigi 商品名BEST(7GBプラン/1,040円)を使ってみる

 

 

マレーシア、ジョホール・バルで格安SIMを契約する。

プランは1.5GBと7GBがあった。シンガポールからの日帰り旅行だが1.5GBでは心許ないので7GBのほうを契約。

 

40リンギット。約1,040円(1リンギット=26円)。

f:id:min117:20170228162913p:plain

f:id:min117:20170228163653p:plain

RM とあるのはマレーシア通貨リンギットのこと。

f:id:min117:20170304141218j:plain

 

SIMフリーのルータで使用する。

確認くん

f:id:min117:20170228163212p:plain

f:id:min117:20170228163223p:plain

スピードテスト

f:id:min117:20170228163721p:plain