BonTsDemuxをLinux(Debian squeeze)で使う

2011/08/21未分類import
BonTsDemuxをLinux(Debian squeeze)で使うことができます.
というか多くの人は苦もなくインストールして使っているでしょう.
ですが私は例によってつまづいたのでメモしておきます.

Wineをインストールする

WineはLinuxにWindowsのような挙動をさせてWindowsのプログラムをLinux上で実行できるようにするプログラムです.
これをインストールします.squeeze標準のパッケージで問題ありませんでした.

BonTsDemuxを入手して適当な場所に置く

こちらのリンクからBonTsDemuxを入手して,Linux機の適当な場所に保存します.

Microsoft Visual C++ 2008 再頒布可能パッケージ (x86) を入手しインストールする

BonTsDemuxの実行にはVisual C++のランタイムが必要なのでインストールします.
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF

ダウンロードしたファイルvcredist_x86.exeをcabextractというコマンドを使って展開します.
解凍後にinstall.exeあるいはsetup.exeというプログラムが出現するはずですので,
それを実行する(ダブルクリックでできるはず)とインストールできます.

BonTsDemuxを実行する

後はBonTsDemuxを実行するだけです.私の環境ではドラッグアンドドロップは有効になりませんでしたが
それ以外は問題なく動作しているようです.
作成したファイル(5.1ch音声のTSを2ch音声のMPEG2-PSに変換したもの)も
Windowsで変換したものと同様に音ずれやノイズ,再生の可否に問題はありませんでした.

Gvimで印刷する

2011/07/15未分類import

範囲を指定せずに印刷する

:hardcopy
とたたくか,メニューから印刷を行う.

範囲を指定して印刷する

56行目から,101行目までを印刷する場合次のようにコマンド入力する.
これを覚えていれば,非常に便利だ(個人的には).
:56,101hardcopy
Windows版で動作確認をしたが,普通に他の環境でも利用できるだろう(プリンタの設定がされていればだが).

ヘッダの編集

例えば次のような設定をしておくと,印刷時刻,ファイル名,ページ,作成者名がわかって検索性が高いだろう.
:set printheader=%{strftime('%Y/%m/%d\ %H:%M')}\ %t\ page:%N\ \ \ \ Hirosugu\ Hirayama

GNU sed をWindowsで使う

2011/06/29未分類import

GNU sed をWindowsにインストールする.

sedは主にUNIX系のOSで置換操作をするのに使われるプログラムですが,
バッチファイルと連携することで,Windowsでも同様の作業を行うことができます.
ただし,自分でsedをインストールする必要があるためそこから解説します.

sed for Windowsからバイナリをダウンロードして実行してみたところ,dllがないから動かないとエラーが出ました.
このため表示されたライブラリを探していく作業を経ました.
sed-4.2+alpha.zipはライブラリを集めて,動作する状態で再圧縮をかけたものです.
バージョンは固定ですが必要に応じて利用ください(GNUライセンスなので再配布は可能なはずですのでおいておきます.).
解凍したフォルダ内のbinに実行ファイルとかき集めたライブラリがあるので,これをパスの通っている場所に置きます.
私はTeXをインストールしたフォルダに古いsed(有用なオプションが使えないバージョン)があったので,そこに上書きする形で置きました.

バッチファイルを任意のエディタで編集できるようにする

バッチファイルは使用頻度の高いテキストファイルです.
上のsedを使うにしてもバッチファイルで使うと他のプログラムと連携する場合に便利だと思われます.
ですがいざ編集をしようと右クリックメニューで編集を選択すると,
開かれるのはメモ帳というのが残念なデフォルトです.
バッチファイルを開くプログラムは,レジストリエディタ(regedit.exe)を使って変更可能です.
regeditを起動したあと,HKEY_CLASSES_ROOT→batfile→shell→edit→command
と進んで,commandの既定をダブルクリック(あるいは右クリックで修正を選択する)します.
そして,そこにあるメモ帳のパスを好きなエディタのものに変更すれば完了です*1
C:\Software\vim73-kaoriya-win32\gvim.exe "%1"
私は上のようにvimを使っています.この際,「"%1"」を「%1」とすると,
半角スペースが入ったパスのファイルが編集できないので注意が必要です.

*1 : ちなみにデフォルトは「%SystemRoot%\System32\NOTEPAD.EXE %1」でした.

バッチファイルを使って文字列の置換を行う

以下のような内容のバッチファイル"ikkatsu.bat"を作成します.
for %%A in (%1) do sed -i -e "s/てすと/#てすと/g" %%A
for %%A in (%1) do sed -i -e "s/Km/km/g" %%A
for %%A in (%1) do sed -i -e "s/,/	/g" %%A
この"ikkatsu.bat"は次のように実行することで,
拡張子がcsvのファイル内の対象文字列を一括で置換してくれます.
ikkatsu.bat *.csv
必要に応じて,内容を変更すれば,様々な要求に応えられるでしょう.

2024年12月追記

この記事は2011年のものです.現在も(恐らく)上の内容でsedを使用可能ですが,
Windows 10や11ではWSL(Windows Subsystem for Linux)が使えるので,そちらをセットアップし,
WSL上のLinuxでsedをはじめとするUNIX系コマンドやシェルスクリプトを駆使して処理した方が便利な場合が多いと思います.
筆者は最近この記事の方法でsedを使っていません.

gnuplotを使ってみる(実用編)

2011/06/17未分類import

gnuplotのインストールと設定

公式サイトをたどっていくとWindows版も入手できる.たどった先はたぶんこちら.最新版のWindowsバイナリをダウンロードして,好きなフォルダに解凍すればいい.
gnuplotは解凍後のフォルダのbinary内のwgnuplot.exeを実行する.
しかし,初回起動時はフォントの設定がなされていないために,文字が読めない!
ウィンドウを開いた直後に右クリックし,「Choose Font ...」を選択して設定する.
その後,再び右クリックして「Update C:\...」を実行して保存する.


設定ファイルとコマンドを使い分ける

gnuplotはコマンド単品を逐次実行していく以外に,設定ファイルを読み込ませて実行することができる.

使いそうな設定を書いておく
下記は2次元用
#gnuplot 設定ファイル

#グラフ書式 ラベル
set xlabel "x"
set ylabel "y"

#グラフ書式 描画範囲
set xrange [-10:10]
set yrange [-10:10]


#SVG ファイル出力
set terminal svg font "Meiryo,16" size 600,600
set output "svg-3d.svg"
#plot "data-test1.txt" with linespoints pt 7

次は3次元用
set xlabel "x"
set ylabel "y"
set zlabel "d"

#グラフ書式 描画範囲
set xrange [-100:100]
set yrange [-100:100]
set zrange [150:300]
set grid
set ticslevel 0

#出力設定
set pm3d
set view 60,206
set terminal svg font "Meiryo,16" size 600,600
set output "svg-3d.svg"
splot "data-test1.txt" with linespoints pt 7 
set terminal windows font "Meiryo,20" size 800,800
splot "data-test1.txt" with linespoints pt 7
データは次のようなもの.
#x	y	d
-100	0	200
-66	0	220
-33	0	270
0	0	250
33	0	260
66	0	220
100	0	180

0	-100	200
0	-66	220
0	-33	270
0	0	250
0	33	260
0	66	220
0	100	180

100	0	180
66	0	220
33	0	260
0	0	250
-33	0	270
-66	0	220
-100	0	200

0	100	180
0	66	220
0	33	260
0	0	250
0	-33	270
0	-66	220
0	-100	200
これを実行すると,こんなグラフが得られたりする(例なので形状などに意味はないです).
svg-3d-t2.jpg