〜2015年2月下旬〜
以前joinをgrepの代わりに使う話を書いたが、
複数マッチすることを利用すると組み合わせ的な使い方ができる。
% seq -f 'a %g' 3 a 1 a 2 a 3 % join <(seq -f 'a %g' 3) <(seq -f 'a %g' 3) a 1 1 a 1 2 a 1 3 a 2 1 a 2 2 a 2 3 a 3 1 a 3 2 a 3 3
aが共通なので各々可能性があるものが列挙されるようだ。
aが邪魔なら消すことも可能だ。
% join -o 1.2,2.2 <(seq -f 'a %g' 3) <(seq -f 'a %g' 3) 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3
借りなければ月額料金がかからないので定額をやめて
スポットレンタルにしたわけだけど、
旧作しか借りないなら断然こっちのほうが安い。
特に毎月のようにやってる旧作80円レンタルを利用すれば、
7枚までなら送料同じなので800円ぐらいで借りられる。
定額だと2000円ぐらいで8枚までなので、
たまに気が向いたときに借りるのにぴったりだ。
数値を右詰めにしてしまうと、sortしてもjoinはsortと見做さないようで。
% seq -f "%2g" 10 -1 1 10 9 8 7 6 5 4 3 2 1 % seq -f "%2g" 10 -1 1 | sort | join --check-order - <(seq 10) 1 2 3 4 5 6 7 8 join: -:10: is not sorted: 10
9はどこへ?
ちょっとでかくなるとこんな表示になってしまう。
% echo 10000000000|mawk '{print $1+1}' 1e+10
原因はデフォルトの書式(OFMT)が"%.6g"だから。
これを"%.f"にすればまだまだいける。
% echo 10000000000|mawk '{print $1+1}' OFMT="%.f" 10000000001
"%d"だとオーバーフローしてしまうのでだめ。
% echo 10000000000|mawk '{print $1+1}' OFMT="%d" 536870912
cygwinにpalというカレンダーソフトが入ったんで、
なんだと思いubuntuにパッケージあったんだ試してみた。
% pal Su Mo Tu We Th Fr Sa | Su Mo Tu We Th Fr Sa Feb 15 U16S C17C C18C 19 20 21 |Mar 22 23 24 25 26 27 28 U22S 23 24 @25@ 26 27 28 |Apr C29C 30 31 U01S C02C C03C 04 Mar 01 02 03 04 05 06 07 | C05C 06 07 08 09 10 11 U08S 09 10 11 12 13 14 | 12 13 14 U15S 16 17 18 15 16 U17S 18 19 20 21 | 19 20 21 U22S 23 24 25
なんだかよくわからないが、自分でイベントを設定できるらしい。
とりあえず/usr/share/pal/us.palのまねして日本の祝日を~/.pal/jp.palにちょっと書いてみた。
JP JAPAN 00000101 元日 *0122 成人の日 00000211 建国記念日
これで~/.pal/pal.confからus.palとか要らないもの消して、
file jp.pal (red)を追加してみるとこんな感じになった。
% faketime 1/2 pal Su Mo Tu We Th Fr Sa | Su Mo Tu We Th Fr Sa Dec 21 22 23 24 25 26 27 |Jan 25 26 27 28 29 30 31 Jan 28 29 30 31 J01P @02@ 03 |Feb 01 02 03 04 05 06 07 04 05 06 07 08 09 10 | 08 09 10 J11P 12 13 14 11 J12P 13 14 15 16 17 | 15 16 17 18 19 20 21 18 19 20 21 22 23 24 | 22 23 24 25 26 27 28
*0122でちゃんと第2月曜日になってる。
JPじゃなくて祝日にしてみると残念ながら表示が乱れる。
% faketime 1/2 pal Su Mo Tu We Th Fr Sa | Su Mo Tu We Th Fr Sa Dec 21 22 23 24 25 26 27 |Jan 25 26 27 28 29 30 31 Jan 28 29 30 31 祝01日 @02@ 03 |Feb 01 02 03 04 05 06 07 04 05 06 07 08 09 10 | 08 09 10 祝11日 12 13 14 11 祝12日 13 14 15 16 17 | 15 16 17 18 19 20 21 18 19 20 21 22 23 24 | 22 23 24 25 26 27 28
ファイル名に"-"を指定すると標準入力や標準出力という意味になるので、
% aws --quiet s3 cp s3://bucket/object.txt -
でcatと同じように使える。
またダウンロードしながらgzなファイルを伸長したい場合はこんな感じでいける。
% aws --quiet s3 cp s3://bucket/object.txt.gz - | zcat > object.txt
便乗してちょっと変形。
% for i in {180..1};do date -d@$i -u +$'\r%H:%M:%S'|tr -d '\n';sleep 1;done;echo $'\a'
最近のUbuntuだとデフォルトでビープ音は鳴らないので、
paplayで音を鳴らすといいかもしれない。
/usr/share/sounds/ubuntu/stereo/ 以下にいろいろある。
ビープ音鳴らしたいときは/etc/modprobe.d/blacklist.confの
blacklist pcspkrをコメントアウトして再起動。
確かにこれはにわかには信じがたいが、
convertでちょっとした処理をかけるとなんと同心円が4つ出てきた。
"There are only four circles here and they don't touch. C'mon brain you can do this."
% convert four-circles.jpg -solarize 60% four-circles-solarize60.jpg