mattintosh note

どこかのエンジニアモドキの備忘録

ShellScript

にじさんじメンバーとかのYouTubeチャンネルIDを取得するだけのスクリプト

暇つぶしでやってる VTuber のランキングサイトに ID を追加するのに5分くらいで適当に書いたもの。YouTube API の仕様変わっちゃったんでどうしようかな〜と思ってるんだけど現時点で登録数 350 超えてるし基本放置プレイなのでどうでもよいのだけどね。 に…

bash でランダムな三択とか乱数作ったりとか

シェルスクリプト書いてるときに外部コマンドを使わずにシェルだけでハッシュっぽいもの作れないかなと思ったので頭の体操。 bash には ${パラメータ:オフセット:長さ} という変数の展開方法があり、例えば ${パラメータ:オフセット:1} とすれば「"パラメー…

Shell と PING でネットワークの速度を監視する

とある場所のネットワーク速度が著しく低下することがあったので監視目的で PING を使ってみることにした(iperf 使いたいけど相手が居ない)。とりあえず PING の出力をパースして SQLite に格納。GNUPLOT で可視化するけど、そのうち Zabbix とかに移して…

アズレン一覧めーかーで3-4ドロップリスト

アズールレーンネタ3日目。 遂にうちにも加賀様がっ!!!(∩´∀`)∩ワーイ (300周以上はしたと思う…赤城は1周目で出たのに…涙) #アズールレーン ああああああああああああああああ!!!!!! pic.twitter.com/V6auE3KKs6— mattintosh4 (@mattintosh4) 2017年…

アズレン一覧めーかーの続き

昨日に引き続きアズールレーンネタで昨日作ったやつをちょっと改良。 mattintosh.hatenablog.com 図鑑のスクショを全部並べるとデカイのでちょっと小さくしようかなと。元の画像が大きいもんね。 元の状態から必要な部分だけ切り出して GIMP でレイアウト調…

アズレン一覧めーかー的なもの(図鑑一覧生成スクリプト)

最近、アズールレーンをやってるんだけど、艦の種類が多い。(まだ日本版未実装の艦もいるっていうのだからそれはもう大変) Wiki とか攻略サイトは見ないで進めてるんだけど、駆逐艦は駆逐艦でも火力重視や対空重視など色々いるので図鑑のパラメータを一覧…

Raspberry Pi の CPU 温度を Zabbix Server に送る

Zabbix Agent で Raspberry Pi の CPU 使用率やネットワーク使用率は Zabbix Server と連携できるようになったけど、CPU の温度までは連携してくれない。 そこで Zabbix Sender を使って Raspberry Pi から Zabbix Server に能動的にデータを送る。 Raspberr…

シェルスクリプトで2進数や16進数を変換

最近、A/Dコンバーターを使うので2進数を扱うことが多くなってきた。Python なんかだと 0b や 0x といった書式や bin() や hex() といった関数があるが、シェルスクリプトの場合はどうするのか?マニュアルを見るとこんな風に書いてある。 Constants with a …

シェルスクリプトで最後の改行を取り除きたい

前に AWK を使ってやったことがあったような気がしたけど head だけで出来るんだよな…。AWK でやったことの方が印象が強くてこっちを忘れてしまう。 head -c -1 file あぁでも Unix の head に -c オプションが無くてそれで AWK を使ったような気がする。で…

SOX で Upsampling? stdout with mpv とか

この前、Raspberry Pi で cdrdao と toc2cue、bchunk でオーディオの取り込みが出来るようにした。 mattintosh.hatenablog.com AAC へのエンコードは長い間 Nero AAC Codec を使ってたが、結構古いしそろそろ最近のエンコーダの方がいいかなと思い、変えてみ…

カラオケメーカー by VLC/ffmpeg/mpv

久しぶりに MacBook Air を使っていて、なぜか「今聴いている音楽をカラオケ音源で聴きたいな」とか思ったのでやってみた。 ここで言う「カラオケ音源」とは ヘッドフォンのプラグが中途半端に抜けた状態のアレ のことである(何を言ってるのかわかると思う…

ImageMagick で「艦これ一覧めーかーカッコカリ改」

前回の「艦これ一覧めーかーカッコカリ」はただ単に並べるだけでしたが、今回の「改」ではアレンジを加えてみました。 mattintosh.hatenablog.com bg_compose="{mode}" を書き換えることでホロっぽい背景に変更可。ImageMagick の plasma: キャンパスは毎回…

ちょっとだけ真面目に「艦これ一覧めーかーカッコカリ」

昨日適当に作った艦隊これくしょんの改装画面一覧を作成するスクリプトを Gist で公開しました。 艦隊これくしょんの改装画面を自動的にトリミングし、任意の列数に配置します。艦娘の配置順をわかりやすくするウォーターマーク追加オプション付きです。 gis…

艦これ一覧めいかー(仮?)

まとめとかで見かけるアレを作るためのスクリプトを作ってみました。ImageMagick が必要ですが…。 艦これの画面画像(800x480ピクセル)があれば横2や横3などのレイアウトで一覧を簡単に作ることができます。 ■2列レイアウト ■3列レイアウト ■3列レイアウト…

ImageMagick で艦これの改装画面を自動アレンジ

久しぶりに ImageMagick を弄ってて反射効果の復習がしたかったので艦これ(艦隊これくしょん)の改装画面をキャプチャーしたものを convert 1回でアレンジするスクリプトを書いてみた。 必要なものは以下の画像6枚。艦これの画面は正確にクロップすれば800×…

ImageMagick を使ってテキストデータを画像に変換する

以前、フォント見本を出力するのに ImageMagick を使ってテキストを画像に変換したんだけどその方法を残してなくてちょっと忘れたのでメモしておく。 テキスト変換も色々オプションが多いのだけど端的に書くと以下のコマンドで任意のテキストを画像にするこ…

date コマンドで「○ヶ月前」

1 month ago とか使えない date コマンドで「○ヶ月前」ってどうやって出すのかな…と。 例えば6ヶ月前の場合。(引数がなければ ${gap} に -6) 自分なりに考えてみたものだと JavaScript の .getMonth() のように1〜12月を0〜11に変換してそれを戻すっていう…

複数の PDF ファイルをひとつにまとめる

Google Chrome でウェブページを PDF 保存したものを Ghostscript でひとつのファイルにまとめた。 gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=COMBINED.PDF *.pdf 上記のコマンドは面倒なので入力と出力の拡張子の大小文字を変更して出力ファイ…

シェルスクリプトでカラム表示とかセンタリング表示とか

これも Qiita に投稿できないのでこっちに。 〈カラム表示〉 /usr/bin/column /usr/bin/lam /usr/bin/paste /usr/bin/pr /usr/bin/rs 〈テキスト生成・加工〉 /usr/bin/fmt:テキストのセンタリング /usr/bin/fold:長くなったテキストを指定行で折り返す /u…

sh・bash・zsh 他 echo 比較

Qiita に投稿しようと思ったけど書式エラーで貼れなかったのでこっちに貼っておく。 GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0) zsh 4.3.9 (i386-apple-darwin10.0) シェルおよびコマンドの種類 /bin/sh /bin/bash /bin/bash(xpg_echo…

bash の for NAME in WORDS で "in WORDS" を省略した場合

help for より。 If `in WORDS ...;' is not present, then `in "$@"' is assumed. in WORDS を与えない場合 in "$@" だと仮定される。とのこと。 sh -c 'for args; do echo $args; done' -- "1 a" "2 b" "3 c" 1 a 2 b 3 c 書いてないソースコード見たこと…

while read で何故次の行が読めるのか

Qiita に投稿しようと思ったけどなんか毎回同じようなこと書いてても他の人にはまったく関係ないよねってことでブログに。 また新しい疑問が沸いて来た。 「while read; do :; done < file で何故次の行が読めるのかわからない。」 だって read < file した…

シェルスクリプトの雑記帳

シェルの初期化 env を経由することにより環境変数などをリセットできる。 #!/usr/bin/env - SHELL=/bin/sh LC_ALL=C TERM=xterm COMMAND_MODE=unix2003 /bin/sh ただし以下のように実行された場合はリセットされない。 $ sh script.sh 最低限?必要な環境変…

sed で awk とか grep っぽいこと

何のソースで見たか覚えてないけど Xcode のパスの取得について調べていたときのこと。 SDK のパスはコマンド一つでは取り出せず、xcodebuild -version -sdk <sdkname> から取得しなくてはいけない。 $ xcodebuild -version -sdk macosx10.6 MacOSX10.6.sdk - 'Mac OS</sdkname>…

osascript でダイアログ表示「tell application "Finder"」と「tell application "AppleScript Runner"」

osascript でダイアログを表示するのに今まで tell application "Finder" 使ってたけど都度 activate しなきゃいけないし Finder の制御を持っていかれるのが面倒だった。AppleScript と同じ感じで使えればいいんだけどな〜と思って調べてみたら tell applic…

Mac × ffmpeg × Automator

ffmpeg を更新したので Finder に追加している ffmpeg 変換サービスのスクリプトを書き直した。 # template: services # source: file or folder # mode: args cd $TMPDIR printf '#!%s\n' $SHELL > $$$$ for f in "$@"; do test -f "$f" && printf '/usr/lo…

Finder で選択した項目を Wine で開く(ターミナル兼用版)

Automator を使った Finder 用サービスのサンプルです。Finder で選択したファイルをコンテキストメニューからターミナルアプリケーションを経由して Wine で実行します。 WINELOADER の部分は MacPorts 用なのでそれ以外の場合はパスを変更して下さい。ター…

Wine で msi ファイルを開くときの「msiexec /i」を省略できるようにする

Wine で msi ファイルを開く時は… $ wine msiexec /i hoge.msi な感じで実行するんですが、bin/msiexec なんてものを発見。これもしかして単体で実行できるんじゃないの?って調べてみたら出来るっぽい。 msiexec - The Official Wine Wiki というわけで起動…

💻 sed でタブを入力するには?

sed でタブの削除や置換をしたりする話です。

Finder で選択した動画から ffmpeg で音声を抽出する

Automator と ffmpeg を使って Finder の選択項目から音声を抜き出したりするためのシェルスクリプトを考えてみた。サービスとして登録し、Finder のコンテキストメニューから呼び出せばターミナル上で ffmpeg を使って処理を行う。拡張子抽出部分はテストソ…