2009/05/21(木)奇数 or 偶数ファイルのみ引っかける
○○_p01.foo, ○○_p02.foo, ○○_p03.foo … ○○_p99.fooというファイルがあった時に、奇数番号のファイルだけ引っかける場合Windowsだと次のような検索条件となる。
*1.foo *3.foo *5.foo *7.foo *9.foo
Linuxなどgrepが使えればこんな感じ
grep ^.*[13579]\.foo$
Windowsの標準機能でもっとスマートに検索を行えないものか…
○○_p01.foo, ○○_p02.foo, ○○_p03.foo … ○○_p99.fooというファイルがあった時に、奇数番号のファイルだけ引っかける場合Windowsだと次のような検索条件となる。
*1.foo *3.foo *5.foo *7.foo *9.foo
Linuxなどgrepが使えればこんな感じ
grep ^.*[13579]\.foo$
Windowsの標準機能でもっとスマートに検索を行えないものか…
現状のファイルサーバのストレージ利用率がそろそろ75%を超えるので増強計画を図っている。
$ df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/sda3 2.0G 213M 1.7G 12% / tmpfs 1.8G 0 1.8G 0% /lib/init/rw udev 10M 116K 9.9M 2% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm /dev/sda1 122M 28M 88M 24% /boot /dev/sda7 1.6T 954G 679G 59% /data /dev/sda6 9.9G 151M 9.2G 2% /home /dev/sda5 7.9G 1004M 6.5G 14% /usr /dev/sda2 4.0G 527M 3.3G 14% /var /dev/sdf1 126G 54G 72G 44% /data/temp1 /dev/sdg2 122G 82G 40G 68% /data/temp2 /dev/md0 376G 369G 6.7G 99% /data/SW_RAID
現状の構想ではデータ領域は実利用領域が7TB程度*3まで拡張可能な為、現状の光学メディアに落とすのは現実的ではない*4。現実的な案としてはLTO4などのテープドライブか、ディスクのどちらか。保存性としてはテープがいいのだろうけど、LTO4ドライブはとても手が出る代物ではないし*5*6、テープメディアのコストも結構する為SATA HDDへ取得することにする。
運用が楽そうな裸族のお立ち台シリーズでも買ってこよう。
LinuxでのeSATAの接続って、USB接続と同じようにアンマウント状態にして外せばいいのか?
実際に使うよりも、こうして構想を練っている方が楽しいのは自分だけでしょうか?
HDDのフォーマット前の作業などにddをよく使うのだが、進捗が表示されないのでどこまで完了しているのかが不明なところが使いづらい。
そんなわけで、ddの進捗を確認する方法を調べたところ、SIGUSR1シグナルをddに投げればいいらしい。
$ dd if=/dev/zero of=/dev/null bs=10M &
[1] 8237
$ ps ax|grep dd
8237 pts/1 R 0:06 dd if /dev/zero of /dev/null bs 10M
8239 pts/1 S+ 0:00 grep dd
$ kill -SIGUSR1 8237
$ 34411+0 records in
34410+0 records out
360815001600 bytes (361 GB) copied, 19.9085 seconds, 18.1 GB/s
$ kill -SIGUSR1 8237
$ 52939+0 records in
52938+0 records out
555095162880 bytes (555 GB) copied, 31.2714 seconds, 17.8 GB/s
$ fg
dd if=/dev/zero of=/dev/null bs=10M <- ここでCtrl-Cを実行
68153+0 records in
68152+0 records out
714625515520 bytes (715 GB) copied, 39.9663 seconds, 17.9 GB/s
$
これでddが使いやすくなる。
com.sun.star.drawing.GraphicShapeObjectの大きさを変える。
OpenOffice.org Calc 3.0.0
別記事「[Calc] ファイル選択ダイアログを開き、選択された画像を挿入する」にて挿入した画像を、アスペクト比を保ちながらサイズの変更を行う。
上記の別記事中のマクロに続いて処理を実行させる場合、挿入された画像のDrawPageオブジェクトのインデックスは、対象シート中のDrawPageオブジェクトの中で最大となる。このため、処理対象画像の選択はインデックスにて判定(最大のインデックス値を持つ画像を対象)を行っている。
const MAX_WIDTH as Integer = 10000 ' 10cm const MAX_HEIGHT as Integer = 10000 sub resizePicture dim sheet as Object dim drawPg as Object dim draw as Object sheet = ThisComponent.CurrentController.ActiveSheet drawPg = sheet.getDrawPage if drawPg.getCount > 0 then 'インデックスが最大のオブジェクトを対象とする draw = drawPg.getByIndex( drawPg.getCount - 1 ) else exit sub end if dim scale as double dim drawResize as new com.sun.star.awt.Size '拡大率を求める if draw.Size.Width > draw.Size.Height then '横長の場合 scale = MAX_WIDTH / draw.Size.Width else '縦長の場合 scale = MAX_HEIGHT / draw.Size.Height end if with drawResize .Width = draw.Size.Width * scale .Height = draw.Size.Height * scale end with draw.setSize(drawResize) end sub
数値変数の型の最大値と最小値はどこかに定数として用意されているのでしょうか?
メニュー「挿入 - 画像 - ファイルから」に相当するマクロ
OpenOffice.org Calc 3.0.0
sub insertPicture dim document as Object dim dispather as Object ' get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") ' ファイル選択ダイアログの初期化 dim filePickerDlg as Object filePickerDlg = createUnoService("com.sun.star.ui.dialogs.FilePicker") filePickerDlg.appendFilter( _ "JPEG画像ファイル(*.jpg, *.jpeg)", "*.jpg", "*.jpeg") if filePickerDlg.execute = 1 then 'ファイルが指定された場合 dim selFiles() as String selFiles() = filePickerDlg.getFiles() dim picInfo(2) as new com.sun.star.beans.PropertyValue picInfo(0).Name = "FileName" picInfo(0).Value = selFiles(0) picInfo(1).Name = "FilterName" picInfo(1).Value = "JPEG - Joint Photograhpic Experts Group" picInfo(2).Name = "AsLink" picInfo(2).Value = false 'ダイアログで指定された画像をアクティブセルへ挿入 dispatcher.executeDispatch(document, ".uno:InsertGraphic", _ "", 0, picInfo()) end if end sub