Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

2015-10-01から1ヶ月間の記事一覧

農水省資料「世界のかんがいの多様性」を読んでみる

近頃、何かと話題の水資源。 第三次世界大戦は水を巡って発生するなんて与太話もでるほどです。 一部では水蒸気をかき集めて水を作る装置なんてのも出来たそうですが(以下のリンク参照)wired.jp 実際不足気味なのは、「農業用水」です。 レタスもトマトもジ…

「地域産業資源」なるものについて

中小企業地域資源活用促進法は、各地域の強みである農林水産品、鉱工 業品及びその生産技術、観光資源の3類型からなる地域産業資源を活用して 新商品の開発等に取り組む中小企業を支援し、地域経済の活性化を図ること を目的として、平成19年6月29日に…

awkでredisやXML、PostgreSQLを使う魔界拡張

awk

gawkには、「gawkextlib」という外部拡張群が用意されています。 公式から文言を引用すると The gawkextlib project provides a number of gawk extensions, including one for processing XML files. XML読み込みを主目的に開発された事がわかります。実際…

awkの文字列系便利関数

awk

awkの文字列系便利関数はデフォルトでいくつかついてます。 RubyやPythonに慣れていれば大体挙動は同じです。 メソッドチェインみたいな事は不得手ですが。 文字列系便利関数 index 先頭からの文字数をカウントする関数です。 1文字以上の文字列に一致、そ…

awkにもsplit関数がある

awk

配列といえば、おなじみsplit関数。 awkにもあります。 ちょっと便利な機能がついて。 実際のところ 普通に使うだけなら、変数は2個です。 分割する文字列、格納先の配列という順。 $ gawk 'BEGIN{a ="Hello World, yo"; split(a, ary); print ary[1]}' Hel…

awk組み込みの怪関数「gensub」

awk組み込みの「gensub」は a GENeral SUBstitution function. という事で、sub関数を拡張したような使いかたをします。 関数の引数は以下の通り。 gensub(regexp, replacement, how [, target]) *実際のところ 既存文字列を抽出し、並び替えて別の文を作る…

配列の内容を消すときにはdelete

awk

awkで配列のカラムを消す時は delete ary[index] です 実際のところ BEGIN { PROCINFO["sorted_in"] = "@ind_str_asc" ary[3] = "j" ary[1] = "t" ary[2] = "a" ary[0] = "b" delete ary[2] for (i in ary) print i, ary[i] } #>> 0 b #>> 1 t #>> 3 j 参考…

配列の格納順を決める変数PROCINFO["sorted_in"]

awk

AWKで配列の格納順を決める変数として、PROCINFO["sorted_in"]があります。 実際のところ 以下のようなスクリプトがあったとします。 BEGIN { PROCINFO["sorted_in"] = val ary[3] = "j" ary[1] = "t" ary[2] = "a" ary[0] = "b" for (i in ary) print i, ar…

awkの配列をfor文で順繰りに読む

awk

awkの配列をfor文で順繰りに読む場合、 eachのような気の利いた関数はないので、 シェルなどと同様 for ( NUM in ARY )てな書き方になります。 実際のところ BEGIN { a["here"] = "here" a["is"] = "is" a["a"] = "a" a["loop"] = "loop" for (i in a) { j++…

awkでARGV系変数を扱う

awk

awkにも、引数を取得するARGV系変数があります。 引数の総数を見るARGCという便利変数もついてるので、やりようによっては色々応用が効く可能性があります。 実際のところ 引数で変数A、Bを定義し、awkスクリプト内で参照するようなスクリプトの場合、 もっ…

awkの-vオプションで初期値を与える

awk

awkの-vオプションは初期値を与えるオプションです。 似た処理を変数変えてやりたい時に有効ですね。 実際のところ $ gawk -v A=2 'END{ printf "A:%d + B:%d\n", A, B}' B=4 /dev/null A:2 + B:4最後にある/dev/nullがミソです。 これがないと、無限参照で…

国際貿易で商品の種類を認知するために使う番号「HSコード」について

HS code ( またはHARMONISED SYSTEM CODE ) は、国際貿易で商品の種類を認知するために使う番号です。 外国に商品を輸出する際、関税や禁制品の調査の手前この番号を要求されることがあります。 印象では「トルコ」「インド」で要求されるケースが多いように…

何やら知らぬ間にScratchが凄い事になっていたという話

scratchはお手軽プログラミング言語です。 RaspberryPiに搭載された事で、さらに有名になりましたね。 scratch.mit.edu主に教育用途として開発されたもので、ブロックを組み合わせてロジックを記述します。 イベント(茶色)と制御(黄色)、動き(青)の基…

awkスクリプト内部で、他のファイルに記述した設定を呼び出したい場合

awk

awkスクリプト内部で、他のファイルに記述した設定を呼び出したい場合ってありますよね。 この場合、標準拡張のreadfileかrwarryを使うと良いです。 実際のところ readfile 単純にファイルを読み出すだけなら、以下のような感じでいけます。 一本の文字列と…

【読書メモ】テレワーク「未来型労働」の現実

なんで手に取ったの テレワーク―「未来型労働」の現実 (岩波新書)作者: 佐藤彰男出版社/メーカー: 岩波書店発売日: 2008/05/20メディア: 新書 クリック: 11回この商品を含むブログ (22件) を見る「"未来型労働の現実"とは、タイトルからして斜めに構えた見方…

空いてるポートを確認するnmapというコマンド

nmapは空いてるポートを確認できる便利コマンドです。 自分の環境はもとより、他所のサイトのポートも確認できます。 導入(OS X) 基本brewでいけます……が、xdodebulidの権限を設定してないと 以下のようなメッセージを吐いて怒られます。 $ brew install n…

国際 次世代農業 EXPOにいってきました

www.agri-next.jp 14〜16日に幕張メッセで開催されている国際次世代農業EXPOに行ってきました。 名前の通り、農業系の展示会です。 最近、会社がようやっと農業ICTな仕事ができる体制になってきたので その情報収集も兼ねて、偵察してきた次第。次世代農業EX…

tac的な事をやるライブラリ「revoutput」

awk

たまにawkでtac……つまり逆読み的な事をやる例題がありますね。 ああいった事をやる場合、実は標準添付ライブラリの「revoutput」を使うと苦労もなくいけます。 $ gawk '@load "revoutput"; BEGIN { REVOUT=1; print "sample string" > "/dev/stdout"}' gnirt…

AWKにもstrtime関数がある。ただし、timeライブラリと合わせてつかう。

awk

Ruby等々の軽量言語でもお馴染み、時刻を返すstrftime関数、AWKにもちゃんとあります。 使い方に一手間かかりますが、あとの使い勝手はなんら変わりません。 実際のところ strftime関数を呼び出すだけなら、ライブラリ不要です。 ただし、そのまんま呼び出し…

AWKでUNIXコマンドの結果を内部的に使いたい場合「|」でつないでやる

awk

AWKでUNIXコマンドの結果を内部的に使いたい場合「|」でつないでやるだけで大丈夫です。 実際のところ 単純に結果が欲しいだけなら、以下のようにつなぐだけです。 $ gawk 'BEGIN {"date" | getline result; print result}' 2015年 10月12日 月曜日 23時47分…

AWKで置換後のバックアップファイルを残しておきたい場合、「inplace」ライブラリが使える。 

awk

awk組み込みのinplaceは置換後のバックアップファイルを取るときに非常に便利です。 公式では、 The inplace extension emulates GNU sed’s -i option, which performs “in-place” editing of each input file. It uses the bundled inplace.awk include fil…

awkの組み込み拡張機能を使うときは「@load」を使う

awk

AWKには予め拡張ライブラリがいくつか用意されています。 これらは@loadで読み出す事で利用可能です。 実際のところ 呼び出し方 数値をascii文字に拡張するライブラリordchrを使ってみます。 これを読み出し、97(='a')を変換するには以下のようにします。 $ …

伊豆大島に遊びにいくときに使える「宿泊割引券」について

2018/01/31 平成29年まではあったのですが……残念ながら終わったようです。 伊豆大島では執筆時点において、一人あたり三千円/泊の宿泊割引券発行のサービスが実施されています。 予め用意しておけば、適用に大した手間はかからないので積極的に利用してきま…

調布飛行場から伊豆大島へ30分以内。「調布飛行場」は実際便利

地図でみると、割と都心から近い伊豆大島。 山あり海ありの自然豊かな島です。 とはいえ、海を隔ててますから心理的距離感はありますよね。 実際、東京湾から伝統的フェリー線に乗ると8時間かかります。 高速船でも1時間半。 ちょっと気楽には行けないなー…

【イベントレポ】CEATEC JAPAN 2015に行ってきました

10月7日〜10日に幕張メッセで開催されるCEATEC JAPAN 2015に行ってきました。www.ceatec.com 写真 概観 Kii BaaSサービスを提供しているKiiさんのブース。 社内の人が大絶賛だったので覗いてみました。 「そもそもBaaSって何ですか」という低レベルな質…

awkの出力先はfdも指定可能

awk

Besides the /dev/stdin, /dev/stdout, and /dev/stderr special file names mentionedearlier, gawk provides syntax for accessing any other inherited open file: /dev/fd/Nとあるように、awkでは通常のstdin、stdout、stderrの3人組に加えて 自分で指…

awkにおけるgetlineのバッドノウハウを消し去る構文「c&&!--c;」についてちゃんと理解する

awk

以前の記事で書いた、以下のようなgetlineを使うバッドパターンを考えます。 三行目にマッチし、その二行あとを捕獲して表示する例です。 $ seq 1 10 | gawk '/3/{getline; getline; print}' これは、getlineを使わない形で以下のように書き換わります。 $ s…

変数NRは上書きできる

awk

行数を示す変数NRについては、何度か記事にしてきました。shuzo-kino.hateblo.jp shuzo-kino.hateblo.jp実は、この変数……処理中に値を上書きできます。 実際のところ 2行目になったら、NRを42になるようにしてみます。 NRは行を送る毎に一加算されていくの…

AWKにおけるバッドパターン、getlineの多用について

awk

getlineは、大雑把にいうと……条件にあった行を取得しに行く組み込み関数です。 たとえば、3行目から2個先の行を取る場合、こんな風に。 $ seq 1 10 | gawk '/3/{getline; getline; print}' 5 あるいは、入力を既存ファイルの内容で割り込みさせるとか $ se…

AWKで変数を含んだ文字列を生成したい場合、余計な事を考えずに並べるだけでいい

awk

awkのデータ型は自由です。 数値と文字列が混在していても、よろしくやってくれます。 これらを連結したい場合、余計な事を考えずスペース区切りで並べてあげるだけです。 実際のところ 既存の変数に数値を足した変数を生成したい場合、単に並べてあげるだけ…