〜2015年8月下旬〜
昨日の方法は実は間違っていて各行には
Extension0=/home/eban/.thunderbird/XXXXXXXX.default/extensions/{58D4392A-842E-11DE-B51A-C7B855D89593}.xpi Extension1=/home/eban/.thunderbird/XXXXXXXX.default/extensions/keyconfig@dorando Extension2=/home/eban/.thunderbird/XXXXXXXX.default/extensions/{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.xpi
のようにExtensionN=をつけないといけなかった。
でも、Thunderbirdは文句も言わずに受け付けてくれて、
しかもExtensionN=もちゃんとつけてくれた。気が利いてる!
2015-08-22 01:23:45という形式で得たい。
Rubyだとこんな感じだ。
% ruby -e 'puts File.stat(ARGV[0]).mtime.strftime("%F %T")' file.txt 2014-08-22 01:23:45
GNU coreutils lsなら形式を指定できるので可能。ちょっとまどろっこしいが。
% ls -l --time-style="+%F %T" file.txt | cut -d' ' -f6,7 2014-08-22 01:23:45
そこでstat(1)になるわけだけど、これも余計なものがついてしまう。
% stat -c %y file.txt 2014-08-22 01:23:45.000000000 +0900 % stat -c %y file.txt | cut -c-19 2014-08-22 01:23:45
info statを眺めていたら
The ‘%W’, ‘%X’, ‘%Y’, and ‘%Z’ formats accept a precision preceded by a period to specify the number of digits to print after the decimal point. For example, ‘%.3X’ outputs the last access time to millisecond precision. If a period is given but no precision, ‘stat’ uses 9 digits, so ‘%.X’ is equivalent to ‘%.9X’. When discarding excess precision, time stamps are truncated toward minus infinity.
とあった。%yについては何も書かれてない。
ひょっとしてと試してみたら、printfと同じ挙動になっていた。
% stat -c %.19y file.txt 2014-08-22 01:23:45
ソースを読んでみたら最終的にはprintfに"%.19s"のように伝わるようで、
結局そういうことだった。つまりこんなことも可能なわけだ。
% stat -c %U file.txt eban % stat -c %10U file.txt eban
エラー処理してcontext.doneなりcontext.failを呼べば、
なんとかく終了するような気がするが、
実際は処理が続行し思わぬ挙動になる。
たとえば
if (err) { console.log("Error"); context.fail(""); } console.log("Success");
のように書いてしまうとSuccessと表示される。
elseで囲むかif文の中でreturnする必要あり。
終わると思い込んでいると中々このバグに気づかない。
-sketchはかすれさせるためじゃなくて、
その名の通りスケッチっぽくする効果なので、
ちょっとその例を紹介。
% convert bakeneko-2015-orig.png -type grayscale -sketch 10x10+30x0 bakeneko-2015-sketch.png
当然ではあるが、サイズはでかくなる。
Pocketに登録するのにcURLでtitleを取ろうとして気づいた。
amazonにアクセスするとやたらと503になる。
% repeat 10 { curl -sL -w '%{http_code}\n' http://www.amazon.co.jp/dp/B00XVN1OSU/ -o /dev/null; sleep 1 } 503 200 503 200 200 503 200 503 503 503
全部503になるならあきらめもするが、
こんなHTTPステータスがランダムに返ってくるんじゃ、
200になるまで繰り返す処理をする人も出てくるわけで、
余計負荷が上がるだけだと思うんだけどねえ。
それはそれとしてブラウザからだとそんなことにはならないので、
試しに内容が空のUser-Agentをつけてみたらいけた。
% repeat 10 { curl -sL -w '%{http_code}\n' http://www.amazon.co.jp/dp/B00XVN1OSU/ -o /dev/null -A ''; sleep 1 } 200 200 200 200 200 200 200 200 200 200
wgetも同様なので-U ""が必要。
stat --helpを見てたら部品は揃ってるようで簡単に実現できた。
% ls -l util-linux_2.25.2* -rw-r--r-- 1 eban eban 308972 2015-08-05 10:38:42 util-linux_2.25.2-4ubuntu3.debian.tar.xz -rw-r--r-- 1 eban eban 3563 2015-08-05 10:38:41 util-linux_2.25.2-4ubuntu3.dsc -rw-r--r-- 1 eban eban 3703644 2014-10-27 18:39:03 util-linux_2.25.2.orig.tar.xz % stat -c "%A %h %U %G %7s %.19y %n" util-linux_2.25.2* -rw-r--r-- 1 eban eban 308972 2015-08-05 10:38:42 util-linux_2.25.2-4ubuntu3.debian.tar.xz -rw-r--r-- 1 eban eban 3563 2015-08-05 10:38:41 util-linux_2.25.2-4ubuntu3.dsc -rw-r--r-- 1 eban eban 3703644 2014-10-27 18:39:03 util-linux_2.25.2.orig.tar.xz
本当はサイズの文字列の長さを動的に求めないといけないが、結構いけるもんだな。
ああ、export TIME_STYLE="+%F %T"してあるのでちょっとずるしてる。
findでもできた。
% ls -l util-linux_2.25.2* -rw-r--r-- 1 eban eban 308972 2015-08-05 10:38:42 util-linux_2.25.2-4ubuntu3.debian.tar.xz -rw-r--r-- 1 eban eban 3563 2015-08-05 10:38:41 util-linux_2.25.2-4ubuntu3.dsc -rw-r--r-- 1 eban eban 3703644 2014-10-27 18:39:03 util-linux_2.25.2.orig.tar.xz % find util-linux_2.25.2* -printf "%M %n %u %g %7s %TY-%Tm-%Td %.8TT %p\n" -rw-r--r-- 1 eban eban 308972 2015-08-05 10:38:42 util-linux_2.25.2-4ubuntu3.debian.tar.xz -rw-r--r-- 1 eban eban 3563 2015-08-05 10:38:41 util-linux_2.25.2-4ubuntu3.dsc -rw-r--r-- 1 eban eban 3703644 2014-10-27 18:39:03 util-linux_2.25.2.orig.tar.xz
いや形式にこだわらなければ-lsでいいんだけどね。
% find util-linux_2.25.2* -ls 31069467 304 -rw-r--r-- 1 eban eban 308972 Aug 5 10:38 util-linux_2.25.2-4ubuntu3.debian.tar.xz 31069465 4 -rw-r--r-- 1 eban eban 3563 Aug 5 10:38 util-linux_2.25.2-4ubuntu3.dsc 31069466 3620 -rw-r--r-- 1 eban eban 3703644 Oct 27 2014 util-linux_2.25.2.orig.tar.xz
ThunderbirdのLightningにOutlookの予定表と同期してくれるプラグインを以前使っていたことがある。
Thunderbirdの更新についていけなくなってほとんどreadonly状態だったので外しちゃったんだけど、
ふとまた探してみたら完璧に甦っていた。
http://askubuntu.com/questions/562498/how-do-i-sync-my-exchange-calendar-in-ubuntu-thunderbird-lightning How Do I Sync My Exchange Calendar in Ubuntu (Thunderbird / Lightning)? - Ask Ubuntu
この通りにすればokだ。
Ericssonってあのエリクソンだよな。なぜか凄く活発に活動してる。
今回もUstで参戦。
まずは小手調べ問題。ひねりなし。
% grep 'オ[トカ]ン' text | sort -u | cut -d' ' -f1 | uniq -d 003
grepで力技。
% grep -vf b a | sed 's/^/a /'; grep -vf a b | sed 's/^/b /'; grep -f b a | sed 's/^/c /' a 鹿島田 a 川崎 b 登戸 b 南多摩 c 谷保 c 分倍河原
diffを使った解がなかなかあざやかだったので別解。GNU diffの特有のオプションを使用。
% diff --new-l='b %L' --old-l='a %L' --unchanged-l='c %L' <(sort a) <(sort b) | sort a 川崎 a 鹿島田 b 南多摩 b 登戸 c 分倍河原 c 谷保
まあ、長いんであれだけど。
空白と改行を+に変換するが、最後の改行も変換されると構文エラーになるので無理矢理0を追加している。
% for i in a b c;do echo "$i $[`tr -s ' \n' + < $i`0]" ;done a 15 b 6 c 24
numsumを使えばこんな方法も。
% for i in a b c;do echo -n "$i "; xargs -n1 < $i | numsum; done a 15 b 6 c 24
awk芸。これもひねりなし。
% awk 'NR==1{split($0,a,"");FS="";next}i=index($0,"x"){print $1"-"a[i]}' cross a-b f-d
これはcat -sで終了。他にmore -sでもok。
あとsed -zを使った例のawk版。
% awk 'gsub(/\n\n+/,"\n\n")' RS='\0' ORS= text あ あ い い う え お お お お
PBMのP1ならテキストファイルなので簡単。
% (echo 'P1 8 8'; printf "0101010110101010%.0s" {1..4}) | convert - -scale 5000% chess.png
convertは見易くしてるだけで、肝はprintfだけ。4回繰り返しになる。
このくらいなら直接埋め込んじゃったほうが手っ取り早い。
だったらひねらずこれでいいな。
% s=0101010110101010; echo P1 8 8 $s$s$s$s | convert - -scale 5000% chess.png
これもひねりなし。
% grep -o . chinese_characters | sort | uniq -d | grep -f - -n chinese_characters 6:㕐㕑㕒㕓㕔㕕㕖㕗㕘㕙㕚㕛㕜㕝㕞㕟 13:㗀㗁㗂㗃㗄㗅㗆㗇㗈㗉㕐㗊㗋㗌㗍㗎
入れ子になっているとだめだが、この場合はいけてしまう。
% sed 's/\(...\+\).*\1/\n\1\n\1\n/g' number | uniq -d 003 922
この結果を見れば何をやってるかわかると思うし、入れ子がだめな理由もわかるだろう。
% sed 's/\(...\+\)\(.*\)\1/[\1]\2[\1]/g' number 8264611130023148519839960536022802096895154738213681101[003]238[003]191122723[922]378[922]942503388843815799
あちこち解答を見てまわってQ8はこんな方法もあるなとと思った。
% awk '$0=$0$0$0' number | fold -3 | sort | uniq -d 003 922
3回分連結させることで3文字に満たないのを積極的に次のずれに利用すれば、
余計な文字を挿入させなくてもいい。
つまりsedならこんな感じ。
% sed 's/.*/&&&/;s/.../&\n/g' number | sort | uniq -d 003 922
@ScanSnapJPさんから
メンションが来てびっくり。
見てみると問題なく使えるとのことで一安心。
ScanSnapのWindows® 10 日本語版 への対応状況を教えてください。 | ScanSnap よくあるご質問 (PFU)