pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


awk

タブ区切りテキストをJSONに変換するスクリプトをawkで書く

CSVやタブ区切りテキストをJSONに変換しようとすると、意外にスマートな方法が見当たらなかったので、タブ区切りテキストをJSONに変換するawkスクリプトを書いてみた。jqを使って工夫する例もあったけど、シンプルなデータをJSONに変換したいだけならこれで…

DelphiのWindows API向けユニットからAPI名を抽出する

古いDelphiアプリケーションでWindows APIを直接実行している箇所を調べる必要が出てきたので、Windows API向けのユニットから function または procedure として宣言されている箇所をとりあえず抜き出してみることにした ユニットファイルの場所 ここらへん…

ソースコードのインデントを外すスクリプトを書く

awk

既存プロジェクト内に含まれる類似実装を調査するために「全部のソースコードを連結して sort し、同一実装の出現数を uniq -c で数える」という方法を考えました。 しかしこれだとインデントの状態によって同一と数えることができなくなるので、インデント…

複数の画像を順番どおりにPowerPointのファイルに差し込む作業を自動化する

awk

とある事情でキャプチャ画像を順番通りにPowerPointのスライドに差し込む必要が出たのですが、こんなのを手作業でやるのはめんどくさいのでで自動化する方法を探したところ、Ruby で PowerPoint ファイルを生成できるものを見つけました。 github.com そこで…

ログに出現するMACアドレスにベンダー名を付与するフィルタを書く

awk

MACアドレスからベンダー情報を調べる方法は過去に2記事書いています。 しかしこの方法はパラメータ渡しで個別に調べる時は良いけど一括で調べたい場合は微妙にめんどくさい。 pslabo.hatenablog.com この方法はオフラインな環境には向いているし、ログ閲覧…

NextTrain形式の時刻表データを1行1情報に変換してみる

朝の通勤時にできるだけ混雑した電車を避けるために、最寄駅で乗る電車の編成や時刻を把握しておくことはとても大切なことかもしれません。 そして、最寄駅の上流側に車両基地があるようなケースでは時間帯により「途中駅からの始発電車」というラッキーなパ…

日付から曜日を求めるワンライナーを awkで

awk

ウェブサイトにイベントの告知記事を書くときに、過去の記事を書き換えて流用しようとすると、日付は書き換えたけど曜日を書き換え忘れていたり、あるいは間違えて書いてしまったり、ということがあります。そういう間違いをチェックするのに日付とカレンダ…

タブ区切りテキストの第1フィールドに出現するメールアドレスの重複回数を数えるスクリプトをawkで書く

awk

メールアドレスが重複したデータについて、その重複回数を行頭に付与するスクリプトを書いてみました。重複しない行だけを単純に抜いてもよいのですけど、処理が正しく行われているか否かの検証をしたり、あるいは別の処理にてデータの整理を行いたい場合が…

IEEEのMACアドレス oui.txt を元にして MACアドレス→ベンダー名の変換を行う sed フィルタを作ってみる

先日、「MACアドレスからベンダーを検索して表示するコマンド」を作ってみる、なんてことをやったわけですが、あれはインターネット側のAPIを呼ぶ形式なのでインターネット接続が必要でした。pslabo.hatenablog.comしかしそれだと閉じたネットワークでは使い…

sambaサーバ上のUNIXのパスをUNCに変換して表示する

以前に「sambaのUNCのパスでcdする」処理を書いたのですが、今回はこれの逆パターンで「sambaサーバ上のUNIXのパスをUNCに変換して表示する」という処理を書いてみました。 pslabo.hatenablog.com 手抜きの実装なので、あんまりキレイに書いてません。。。pw…

awkの機能だけでシェル変数を参照するテスト

awk

※一部、誤解に基づく記述がありましたので、内容や試験コードを改修しています。awkからはシェル変数を参照できない、というのは常識です。だから間違った理解なのですが、awk にシェル変数を渡す場合には、"-v 変数名=値" でコマンドラインパラメータとして…