PowerShell と bash で任意のコマンドの出力の全行頭にタイムスタンプを付ける

Tera Team でログを取るときの “タイムスタンプ” オプションみたいなことを、OS のネイティブの機能でやりたいシーンがあった。一時的な人力監視とか作業の証跡とかで。

以下、Windows の場合(PowerShell)と Linux の場合(bash)のそれぞれで。

Windows の場合(PowerShell)

ワンライナでやる

こうする。

<任意のコマンド> | foreach-object {(get-date -f "[yyyy/MM/dd HH:mm:ss.ff] ") + "$_"}

コマンドによっては表示が崩れるので、その場合は Out-String -Stream を通してやるとだいたいうまくいく。

<任意のコマンド> | out-string -stream | foreach-object {(get-date -f "[yyyy/MM/dd HH:mm:ss.ff] ") + "$_"}

結果、こうなる。

PS> ping 8.8.8.8 -t | foreach-object {(get-date -f "[yyyy/MM/dd HH:mm:ss.ff] ") + "$_"}
[2015/11/02 01:04:43.31]
[2015/11/02 01:04:43.32] 8.8.8.8 に ping を送信しています 32 バイトのデータ:
[2015/11/02 01:04:43.32] 8.8.8.8 からの応答: バイト数 =32 時間 =7ms TTL=56
[2015/11/02 01:04:44.32] 8.8.8.8 からの応答: バイト数 =32 時間 =9ms TTL=56
[2015/11/02 01:04:45.32] 8.8.8.8 からの応答: バイト数 =32 時間 =4ms TTL=56
[2015/11/02 01:04:46.32] 8.8.8.8 からの応答: バイト数 =32 時間 =12ms TTL=56

関数にする

関数にする場合は、例えばこんな感じ。

function add-timestamp {
	[cmdletbinding()]
	param (
		[parameter(valuefrompipeline = $true, mandatory = $true)][psobject] $object,
		[string] $format = "[yyyy/MM/dd HH:mm:ss.ff] ",
		[switch] $trim
	)
 
	process {
		$object | foreach-object {
			if ($trim) {
				(get-date -f $format) + "$_".trimend()
			} else {
				(get-date -f $format) + "$_"
			}
		}
	}
}

-format(-f でもよい)で任意のフォーマットを指定できる。何も指定しなければデフォルト(”[yyyy/MM/dd HH:mm:ss.ff] “)。

-trim(-t でもよい)は、行末の不要な空白を削除するオプション。なにかの結果を format-table してから add-timestamp に渡すと、行バッファがあふれて折り返されて、全行間に空行が入って見えることがあるので、これを見掛け上抑止するためのもの。

使うときはこんな感じ。ワンライナの場合と同様、場合によっては out-string -stream を噛ませた方がよさそう。

<任意のコマンド> | add-timestamp
<任意のコマンド> | add-timestamp -f "<HH:mm:ss> "
<任意のコマンド> | add-timestamp -t
<任意のコマンド> | out-string -stream | add-timestamp

結果、こうなる。

PS> ping 8.8.8.8 -t | add-timestamp
[2015/11/02 01:16:18.65]
[2015/11/02 01:16:18.65] 8.8.8.8 に ping を送信しています 32 バイトのデータ:
[2015/11/02 01:16:18.66] 8.8.8.8 からの応答: バイト数 =32 時間 =4ms TTL=56
[2015/11/02 01:16:19.66] 8.8.8.8 からの応答: バイト数 =32 時間 =4ms TTL=56
[2015/11/02 01:16:20.66] 8.8.8.8 からの応答: バイト数 =32 時間 =5ms TTL=56
[2015/11/02 01:16:21.66] 8.8.8.8 からの応答: バイト数 =32 時間 =8ms TTL=56

Linux の場合(bash)

ワンライナでやる

こうする。

<任意のコマンド> | awk '{print strftime("[%Y/%m/%d %H:%M:%S] ") $0}'

strftime() はミリ秒単位の表示ができないっぽい。date で代替もできなそう ((やってみたら全行のタイムスタンプが同じ時刻になってダメだった))だし、しかたない。

結果、こうなる。

[kuro@localhost ~]$ vmstat 1 | awk '{print strftime("[%Y/%m/%d %H:%M:%S] ") $0}'
[2015/11/01 05:04:04] procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
[2015/11/01 05:04:04]  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
[2015/11/01 05:04:04]  1  0      0 483204  23324 363936    0    0   145     2   32   44  0  1 99  0  0
[2015/11/01 05:04:05]  0  0      0 483172  23324 363960    0    0     0     0   26   36  0  0 100  0  0
[2015/11/01 05:04:06]  0  0      0 483172  23324 363960    0    0     0     0   26   36  0  0 100  0  0
[2015/11/01 05:04:07]  0  0      0 483172  23324 363960    0    0     0     0   27   42  0  0 100  0  0

関数にする

関数にする場合は、例えばこんな感じ。

#!/bin/bash
function add-timestamp () {
        f="[%Y/%m/%d %H:%M:%S] "
        for opt in "$@"; do
                case "$opt" in
                        '-f' | '-format' )
                                f="$2"
                                ;;
                esac
        done
        cat - | awk "{print strftime(\"$f\") \$0}"
}

-format(-f でもよい)で任意のフォーマットを指定できる。何も指定しなければデフォルト(”[%Y/%m/%d %I:%M:%S] “)。

こうやってつかう。

<任意のコマンド> | add-timestamp
<任意のコマンド> | add-timestamp -f "<%I:%M:%S> "

結果、こうなる。

[kuro@localhost ~]$ vmstat 1 | add-timestamp
[2015/11/01 05:18:48] procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
[2015/11/01 05:18:48]  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
[2015/11/01 05:18:48]  2  0      0 482800  23648 364060    0    0   110     2   30   42  0  0 99  0  0
[2015/11/01 05:18:49]  0  0      0 482768  23648 364060    0    0     0     0   33   46  0  1 99  0  0
[2015/11/01 05:18:50]  0  0      0 482768  23648 364060    0    0     0     0   27   38  0  0 100  0  0
[2015/11/01 05:18:51]  0  0      0 482768  23648 364060    0    0     0     0   23   37  0  0 100  0  0

どうにかしてミリ秒出せないかな、これ。

ウクレレベースのジャックを交換する

Rubinetto で使っているウクレレベースのジャックが接触不良気味だったので交換。

ウクレレベースは KALA の UBASS-SMHG-FS というモデル。これについているピックアップシステムは、Shadow の SH NFX EQ-T UK というものらしい。


ジャックは金属の弾性を利用してプラグの固定と導通の確保を同時に実現する構造なので、極の曲がりっぷりが弱くなるとユルくなって導通も死ぬ。特に何もしなくても、経年劣化で死ぬ。

保証期間内であれば販売店持ち込みが楽だけれど、すでに過ぎていたし、難しい話でもないので自分で。

外す

本体の裏には作業用の穴がある。蓋は磁石での固定なのですぐ外せる。


ジャックは内と外の両側からのナットの締め付けで固定されているので、どちらかのナットを外して抜き取る。

DSC01623

調べる

元の配線がわからないと部品の交換ができないのだけれど、インタネットでは配線図が見つけられなかったので実物を基に書き起こした。

模式的に描くとこう。

似非回路図っぽくするとこう。いろいろと省略しているけれど。

ubass02

バッテリとプリアンプのグラウンドが両方ともジャックのスリーブにつながっているのがめずらしいけれど、シールドを挿さない状態(リングとスリーブがショートしない状態)でもチューナ機能を使えるようにするためかな、たぶん。

チューナ側にも別にスイッチがあるから、きっとそういうことだと思う。

交換する

配線がわかれば、あとは新しいジャックを同じ配線で繋ぐだけ。今回買ったのは SCUD の EP=JACK2。

最初にブッシングを通さないと詰む。ありがちなミスだけれどまじで実際やらかした。

あとは適当に熱収縮チューブで絶縁しながら繋いでいく。

繋ぎ終わったらこの時点でいちど音を出してみた。問題なし。

あとは取り付け。

板の厚みを適当に読んで内側のナットの位置を決めたら、外側から締め付けてやる。

内側のナットが外側すぎると、シールドが挿し込みきれなくなって接触不良につながるので気をつける。内側のナットの位置はとてもだいじ。

固定できたらブッシングも締め付けて、外側にキャップをつけて完了。

おわり。

ORANGE MUSIC inc. presents Lightning Showcase

インストゥルメンタルバンド、(tys)2

多摩のギター部出身のひとたちも多く所属していることもあって、前から気にはなっていたのだけれど、遂に初ライブを敢行するというものだから行ってきた。

6 月 3 日、火曜日。HEAVEN’S ROCK さいたま新都心 VJ-3 にて。

その昔、野良音響屋さんとして PA をやっていたころは、こういう爆音は当たり前だったけれど。

そういうところには最近久しく身を置いていないから、だから声を張り上げないと会話もままならない音圧の空間に居ること自体が、とても懐かしかった。

演奏はキレイめで、想像していたよりもずっとオトナっぽい。

軽音楽系だとノリとイキオイでエイヤっとやってしまうことが多そうだけれど、そこはしっかり造り込んでいたようで。

演奏者側と PA 側との音量の制御がもうちょっと噛み合うとよかったかも。

それでも、知った顔がたのしそうにがんがん音楽しているようすを見るのは、見ているこっちもたのしいから、たのしい。

次のライブはもっと近いところだそうで。時間があけば行ってみよう。

五月雨ギターアンサンブルコンサート

UnisOno さん主催、五月雨ギターアンサンブルコンサート。

近隣のギターアンサンブル団体を集めて合同でひとつのコンサートをつくる企画で、”五月雨” 以外にもこれまでに “風待ち” とか “虹晴れ” とか、そういう名前で開催されてきた実績のある、シリーズめいたコンサート。

この日の出演は、Lluvia と、L’avenir さんと、Rubinetto の三団体。ぼくはこのうち Rubinetto と Lluvia ((このコンサートのために特別に編成されたギターアンサンブル団体。ぜんぶで七人。))の二団体にまたがって出演してきた。

5 月 30 日、土曜日。相模原南市民ホールにて。

朝早くからリハーサルだったのと、クラシックスタイルの Lluvia といつも通りのお気楽な Rubinetto とのテンションの違いも重なって、体力ががんがん持っていかれたけれど。

いやはや、たのしかった。

ギターのたのしさ、というか、音楽のたのしさの本分って、ぼくにとってはどうしたって “本番” にある。

自分ひとりで演奏していても、あるいは団体で閉じた空間で演奏していても、それはそれでもちろんたのしいのだけれど、結局のところ承認欲求のカタマリのような生き方をしているぼくには、ひとまえで演奏して反応をもらうことこそが、ぼくにとっての自己満足のいちばんの達成手段。そうして弾いているときの自分のテンションが、ぼくは好き。

暴言が過ぎるかもしれないけれど、感覚でいえばそういうところが多分にあるのよね。

もちろん、”本番” は “お客さん” あってこそのもので、だからお客さんを呼び込むために、訴求力を高める努力(≒練習)はしないといけないのは、忘れてはいけない事実だけれど。

本番がたくさんあればいいなあと、だからぼくはそう思っていて、だから Rubinetto のフットワークの軽さがとても好き。

そういう意味では、Lluvia のような “その場限り” の特別編成も、気軽にあちこちでできるといいのだけれど、なかなか機会がないのよねえ。

L’avenir さんの演奏はあまり聴けなかったけれど…… そういえばコンクール以外では顔を合わせるのは初めてだったかもしれない。結成当初から見ていたけれど、人数もしっかり増えて、団体としてだいぶ安定してきた感があって。

ギター部がない学校の生徒さんたちがギター合奏を続ける道ってあまり多くないから、ながく続いて欲しいととても思う。

さてさて、八月には今度は “向日葵” の名を冠して 向日葵ギターアンサンブルコンサート が開催されるので、こちらもぜひ。Rubinetto として出演予定。

第 2 回 所沢シティギターアンサンブル演奏会

所沢シティギターアンサンブルさんの、第 2 回演奏会。5 月 24 日、日曜日。所沢市民文化センターミューズの中の、キューブホールにて。キューブホール、響きも造りもギター向きでさいこうね。

この演奏会、もともと聴きにいくつもりだったのだけれど、何故だか依頼を受けたので、今回は野良映像屋さんとしてお手伝い。

リハーサルからカメラをいじりつつ眺めていたのだけれど、ギターのギターらしい芳醇な響きを久しぶりに聴いたなあと思える、そういうステキな時間だった。

成熟した技術と感性に裏打ちされたオトナのギターアンサンブルには、音に身を預けられる安心感と、抱擁感めいた心地よさがある。

アンサンブル経験も豊富で、かつ独奏でもばりばり弾けてしまう技術をもったひとたち、の集まりなのだから、ギターの鳴らし方と響かせ方なんてウマいに決まっているわけではあるのだけれど。

とくにプライムギターの音がたまらなかった。とろける。

DSC01672

学生のエネルギッシュな演奏も好きではあるものの、三月四月五月と定期演奏会が続いて体力を奪われていたこともあって、だからぼくにとっては、とてもよい癒しの時間になった。

今後も追いかけていきたい団体のひとつ。いつまで追いかけられるかは分からないけれど……。

大宮高校ギター部 第 40 回定期演奏会

さいたまダービー最終戦こと、大宮高校ギター部さんの定期演奏会。5 月 6 日、水曜日。さいたま市民会館大宮の大ホール。

アンコールの出来が! 至高でした! そういえば 去年 もそうでしたね。

メイン曲のように緻密にかちっと組み立てる作り方もできて、アンコールのように自由闊達な作り方もできる、そういうフレキシブルな器用さがありそうです。

今回は全体的に前者寄りでしたが、個人的には後者の空気も大好きなので、積極的に登用してほしいところ。

じっくり煮込んだ重奏も、じっくり煮込んだだけあってじっくり煮込んだ味がしました。

なかでも Summer のうたいあげが絶妙で、久しぶりによいギターの音を聴いたなあと思える、納得の響きでした。よいものです。

たのしかったです。

ぼくがこうしていろいろな部活の演奏会に足を運べるのも、いつまでできるのかなあって、最近そんなことを思うことが増えました。

時間が経つのは、はやいものです。

坂戸高校ギター部 第 31 回定期演奏会

坂戸高校ギター部さん。去年文化祭に行って 気になったので、今度は定期演奏会に行ってきました。

5 月 4 日。会場は坂戸市文化会館の大ホール。

文化祭のときから感じていたことですが、寸劇など “遊び” のテンションを全体に取り入れながらも、根底はひじょうに礼儀ただしい、とてもていねいな部活である印象を受けました。

重奏では個々人の名前がアナウンスされて、入場時に一人ずつにスポットが当たって礼をして拍手をもらう時間がある。定期演奏会は『部活』という単位での催しで、だから個々人が大きく取り上げられることは多くないのですが、こういう枠をうまく使うのはすてきな文化ですね。

演奏もとてもていねいで、逆にいえば全体的におとなしい印象もありましたが、HERO のトレモロやアラジンのグロッケン、流星群の導入部など、ところどころヒカるモノがあって満足でした。とくに流星群の導入部は空気感がさいこうによくて、ああいう音は聴くとぞくぞくしますね。演奏の最大の演出は音そのものだよなあと。音を出した先の空気までつくれると、演奏の世界はやっぱり広がります。

ただ、編成上、プライムギターが大多数なので、どうしても中音部が厚くなりがちな傾向はありそうです。プライムギターの音の丸さは武器ですが、同時に埋もれる原因にもなるので、役割に応じて音色を変化させるなどバランスを取ってみるのも楽しいかもですね。

マイクがにょきにょき潤沢に立っていた(うらやましい!)のと、あとは重奏の方々の演奏にぴったりな衣装と照明と舞台づくりのセンス(うらやましい!)がうらやましいポイントでした。演出は曲の雰囲気に合いすぎていてズルいレベルです。

演奏だけを追求した演奏会ではなくて、部活というコミュニティそのものを紹介する場、あるいは保護者の方々や OB の方々に成長をお披露目する場として、とても機能的な演奏会でした。よいエンタテイメントです。みなさんたのしそうです。

30 年以上続いている長い歴史があるとのこと。これからも折に触れて追いかけて行きたいですね。

相模原中等教育学校クラシックギター部 第 27 回定期演奏会

行ってきた。4 月 19 日、土曜日。相模女子大学グリーンホールの、大ホール。伝説的なセンパイたる一期生さんたちの去年の活躍を受けての、二期生さんたちの定期演奏会。

今年もしっかりとよい演奏会だった。『一期生スゴい』から『この部活スゴい』にきっちり切り替わったし、きっと来年も再来年もよい演奏会になるのだろうと思う。

もちろん全曲がカンペキってことはなかったけれど、ウマい曲のウマい部分は信じられないくらいウマいのもあいかわらずで。コンクール曲であるムソルグスキィの本気で狙ってきている感とか、オーボエ協奏曲の一瞬で会場の空気を変えるほどの作り込みっぷりとか。さいこうでした。

そして今年も指揮がよい。コンクール曲の彼も好きだけど、四年生の彼もまたスゴいのが出てきたなあという感じで、すでに来年の楽しみができてほくほくしている。

コンクール、楽しみですね。8 月、東京芸術劇場で会いましょう。

Rubinetto 単独ライブの全曲を YouTube で公開しました!

先日書いた 第 1 回第 2 回 の Rubinetto 単独ライブ。ありがたいことにどちらも満員になり、そしてご好評をいただけたようです。

録音・録画は両ライブともばっちり行っていましたが、この二回分を組み合わせて、当日のフルプログラムになるように全 17 曲、YouTube で公開しました。

お越しいただけなかった方、ぜひどうぞ。お越しいただいていた方も、もう一度お楽しみいただければ幸いです。

全曲入り再生リスト

全曲入りの再生リストです。再生ボタンをぽちっと押すと、17 曲ノンストップで連続で再生されます。BGM にいいですね!

収録曲リスト

前述の再生リストは、以下の全 17 曲でできています。アンコールだけは 2 公演分どちらも入れてあるので重複。

同じリストは、YouTube の再生リストのページ でも確認できます。

  1. Born to Smile – 葉加瀬太郎
  2. 道草のススメ – ソノダバンド
  3. さんぽみち – Haracem
  4. だんご 3 兄弟 – 内野真澄
  5. 桜・咲くころ – 押尾コータロー
  6. きっとまたいつか – DEPAPEPE
  7. Carnival – 押尾コータロー
  8. Manic Street – ソノダバンド
  9. Moon River – H. マンシーニ
  10. to the Seashore – Haracem
  11. ストロマトライト – Haracem
  12. 二階建ての校舎 – Haracem
  13. Girls Talk – 葉加瀬太郎
  14. 翼 ~you are the HERO~ – 押尾コータロー
  15. Wild Stallions – 葉加瀬太郎
  16. Born to Smile – 葉加瀬太郎(アンコール)
  17. Born to Smile – 葉加瀬太郎(アンコール)

このうち “二階建ての校舎” は、第 2 回のみでの演奏でした。プログラムにも記載していなかった、とくべつな一曲です。

作曲者である Haracem のオリジナル CD を参考音源に、”自分のパートの楽譜は自分で書き起こしててきとうにアレンジする” という試みのもとで練習が進められて、(ぼくを含む)メンバの強い希望でめでたく本プログラム入りをはたしました。よい曲です。

オリジナル版は Haracem 自身の手でアップロード されています。

プログラム

こちらが当日配布したプログラムです。あわせてどうぞ。

次のライブ予定

次は 5 月 30 日の土曜日、五月雨ギターアンサンブルコンサートに出演します。

時間もたっぷり 40 分ほど。まだなにを弾くか決めていませんが、存分にお楽しみいただけるはずです。

ぜひどうぞ!

団員もあいかわらず募集中です! どしどしご連絡ください!

第 4 回 岡上分館カフェコンサート

先日の第 3 回から続いて、今回も Rubinetto にお声かけいただけたので出演してきました。3 月 29 日、日曜日。

前回よりも規模が大きくなって、地域のおまつり、になっていました。

あいかわらずまったりと平和な時間の流れる空間で、居心地がよいですね。あのゆったりとした空気は、やっぱりどことなくぼくのだいすきなあの高校に似ているのです。だからすき。

演奏は三曲だけでしたが、のんびりと楽しめました。立ち見がわんさか出るほどの方々にお集まりいただけてありがたい限りです。

スタッフのみなさま、ご来館いただいたみなさま、共演者のみなさま、ありがとうございました。そしてごちそうさまでした!

動画はそのうち公開します。おたのしみに!