読者です 読者をやめる 読者になる 読者になる

😃 mattintosh note 📝

Hello Raspberry Pi!

bash

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

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

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 のエクスポートされた関数の謎

bash で関数をエクスポートして遊んでいるときに不思議な現象に遭遇した。 md2html() { perl /usr/local/bin/Markdown.pl "$1" | cat /dev/fd/3 - /dev/fd/4 3<<EOS1 4<<EOS2 <!doctype html><html><body> EOS1 </body></html> EOS2 } これをエクスポートして実行すると /dev/fd/4 が開けないというエラーになる。 と</eos1>…

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 した…

bash で PATH が伸びるアレ

ビルド専用のシェルプロファイルを書いていてふと思ったのでつらつらと。

シェルスクリプトから Wine にレジストリを登録する

Mac OS 環境でシェルスクリプトから Wine 環境に日本語を含むレジストリデータを登録する。レジストリデータに日本語が含まれる場合、文字コードを CP932 にしておかないとエラーになる。そこで、標準出力したものを iconv で CP932 に変換して wine regedit…

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 でタブの削除や置換をしたりする話です。

QuickTime Player を複数起動する方法

QuickTime Player.app は同じファイルを複数のプレイヤーで起動できないが、open コマンドの -n オプションを使うことで複数起動できる。-a オプションでアプリケーションの指定がなければデフォルトのアプリケーションで起動する。 open -na "/Applications…

Finder × FFplay

ffmpeg をインストールすると ffplay も一緒にインストールされる。Mac でも VLC や GOM Player、Perian をインストールしておけばほとんどの動画は再生できるので ffplay が必要になることはあまりない。強いて ffplay の魅力をあげるとするならば「同一、…

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

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

Finder からアーカイブの中身を確認する

ちょっと tar の勉強中なので Finder から選択したアーカイブ内のファイル一覧をテキストエディタで開くシェルスクリプトを考えてみた。 # mode: stdin while read f do [ ! -f "$f" ] && continue ### open in term ### #tmp=/tmp/`uuidgen` case "${f##*.}…

Finder で XZ 形式を扱う(p7zip)

この前、XZ Utils を使ったワークフローを作ったけど、--threads オプションを使っているのにスレッド数が増えないのでマニュアル見直したら「マルチスレッドにまだ対応してない」みたいなことが書いてあったので p7zip を使うことにした。 # mode: stdin wh…

Mac で p7zip のセルフビルド

MacPorts 版を使ってるけどセルフビルドを試してみたかったので。 MacPorts のポートファイルを見てみたら makefile.machine を変更することでカスタマイズできそう。makefile.macosx_64bits を makefile.machine にコピーして OPTFLAGS=-O を OPTFLAGS=-O3 …

Mac で 7zFM.exe を使う

Windows のアーカイバはファイルマネージャーを搭載していることがほとんどだけど、Mac ではあまり見かけない。コマンドラインなら p7zip や zipinfo を使ったりもできるけど、そこからさらに選択したファイルだけを解凍…となると GUI の方が楽だったりする…

Finder で選択した複数のディレクトリを個別に ZIP にする

Finder では複数の選択項目をひとつのアーカイブにすることはできても、個別にアーカイブ化することができないので Automator でアプリケーションを作ってみた。日付別なんかで JPEG イメージが保存されたディレクトリを個別に ZIP 化するのが目的。 ファイ…