ShellScript
暇つぶしでやってる VTuber のランキングサイトに ID を追加するのに5分くらいで適当に書いたもの。YouTube API の仕様変わっちゃったんでどうしようかな〜と思ってるんだけど現時点で登録数 350 超えてるし基本放置プレイなのでどうでもよいのだけどね。 に…
シェルスクリプト書いてるときに外部コマンドを使わずにシェルだけでハッシュっぽいもの作れないかなと思ったので頭の体操。 bash には ${パラメータ:オフセット:長さ} という変数の展開方法があり、例えば ${パラメータ:オフセット:1} とすれば「"パラメー…
とある場所のネットワーク速度が著しく低下することがあったので監視目的で PING を使ってみることにした(iperf 使いたいけど相手が居ない)。とりあえず PING の出力をパースして SQLite に格納。GNUPLOT で可視化するけど、そのうち Zabbix とかに移して…
アズールレーンネタ3日目。 遂にうちにも加賀様がっ!!!(∩´∀`)∩ワーイ (300周以上はしたと思う…赤城は1周目で出たのに…涙) #アズールレーン ああああああああああああああああ!!!!!! pic.twitter.com/V6auE3KKs6— mattintosh4 (@mattintosh4) 2017年…
昨日に引き続きアズールレーンネタで昨日作ったやつをちょっと改良。 mattintosh.hatenablog.com 図鑑のスクショを全部並べるとデカイのでちょっと小さくしようかなと。元の画像が大きいもんね。 元の状態から必要な部分だけ切り出して GIMP でレイアウト調…
最近、アズールレーンをやってるんだけど、艦の種類が多い。(まだ日本版未実装の艦もいるっていうのだからそれはもう大変) Wiki とか攻略サイトは見ないで進めてるんだけど、駆逐艦は駆逐艦でも火力重視や対空重視など色々いるので図鑑のパラメータを一覧…
Zabbix Agent で Raspberry Pi の CPU 使用率やネットワーク使用率は Zabbix Server と連携できるようになったけど、CPU の温度までは連携してくれない。 そこで Zabbix Sender を使って Raspberry Pi から Zabbix Server に能動的にデータを送る。 Raspberr…
最近、A/Dコンバーターを使うので2進数を扱うことが多くなってきた。Python なんかだと 0b や 0x といった書式や bin() や hex() といった関数があるが、シェルスクリプトの場合はどうするのか?マニュアルを見るとこんな風に書いてある。 Constants with a …
前に AWK を使ってやったことがあったような気がしたけど head だけで出来るんだよな…。AWK でやったことの方が印象が強くてこっちを忘れてしまう。 head -c -1 file あぁでも Unix の head に -c オプションが無くてそれで AWK を使ったような気がする。で…
この前、Raspberry Pi で cdrdao と toc2cue、bchunk でオーディオの取り込みが出来るようにした。 mattintosh.hatenablog.com AAC へのエンコードは長い間 Nero AAC Codec を使ってたが、結構古いしそろそろ最近のエンコーダの方がいいかなと思い、変えてみ…
久しぶりに MacBook Air を使っていて、なぜか「今聴いている音楽をカラオケ音源で聴きたいな」とか思ったのでやってみた。 ここで言う「カラオケ音源」とは ヘッドフォンのプラグが中途半端に抜けた状態のアレ のことである(何を言ってるのかわかると思う…
前回の「艦これ一覧めーかーカッコカリ」はただ単に並べるだけでしたが、今回の「改」ではアレンジを加えてみました。 mattintosh.hatenablog.com bg_compose="{mode}" を書き換えることでホロっぽい背景に変更可。ImageMagick の plasma: キャンパスは毎回…
昨日適当に作った艦隊これくしょんの改装画面一覧を作成するスクリプトを Gist で公開しました。 艦隊これくしょんの改装画面を自動的にトリミングし、任意の列数に配置します。艦娘の配置順をわかりやすくするウォーターマーク追加オプション付きです。 gis…
まとめとかで見かけるアレを作るためのスクリプトを作ってみました。ImageMagick が必要ですが…。 艦これの画面画像(800x480ピクセル)があれば横2や横3などのレイアウトで一覧を簡単に作ることができます。 ■2列レイアウト ■3列レイアウト ■3列レイアウト…
久しぶりに ImageMagick を弄ってて反射効果の復習がしたかったので艦これ(艦隊これくしょん)の改装画面をキャプチャーしたものを convert 1回でアレンジするスクリプトを書いてみた。 必要なものは以下の画像6枚。艦これの画面は正確にクロップすれば800×…
以前、フォント見本を出力するのに ImageMagick を使ってテキストを画像に変換したんだけどその方法を残してなくてちょっと忘れたのでメモしておく。 テキスト変換も色々オプションが多いのだけど端的に書くと以下のコマンドで任意のテキストを画像にするこ…
1 month ago とか使えない date コマンドで「○ヶ月前」ってどうやって出すのかな…と。 例えば6ヶ月前の場合。(引数がなければ ${gap} に -6) 自分なりに考えてみたものだと JavaScript の .getMonth() のように1〜12月を0〜11に変換してそれを戻すっていう…
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…
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…
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 書いてないソースコード見たこと…
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 最低限?必要な環境変…
何のソースで見たか覚えてないけど Xcode のパスの取得について調べていたときのこと。 SDK のパスはコマンド一つでは取り出せず、xcodebuild -version -sdk <sdkname> から取得しなくてはいけない。 $ xcodebuild -version -sdk macosx10.6 MacOSX10.6.sdk - 'Mac OS</sdkname>…
osascript でダイアログを表示するのに今まで tell application "Finder" 使ってたけど都度 activate しなきゃいけないし Finder の制御を持っていかれるのが面倒だった。AppleScript と同じ感じで使えればいいんだけどな〜と思って調べてみたら tell applic…
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…
Automator を使った Finder 用サービスのサンプルです。Finder で選択したファイルをコンテキストメニューからターミナルアプリケーションを経由して Wine で実行します。 WINELOADER の部分は MacPorts 用なのでそれ以外の場合はパスを変更して下さい。ター…
Wine で msi ファイルを開く時は… $ wine msiexec /i hoge.msi な感じで実行するんですが、bin/msiexec なんてものを発見。これもしかして単体で実行できるんじゃないの?って調べてみたら出来るっぽい。 msiexec - The Official Wine Wiki というわけで起動…
sed でタブの削除や置換をしたりする話です。
Automator と ffmpeg を使って Finder の選択項目から音声を抜き出したりするためのシェルスクリプトを考えてみた。サービスとして登録し、Finder のコンテキストメニューから呼び出せばターミナル上で ffmpeg を使って処理を行う。拡張子抽出部分はテストソ…