Just another Ruby porter,


10月下旬の日記 | RDF

2016-10-29 (Sat)

第25回シェル芸勉強会にリモート参加

今回もリモートで参戦。

_ Q1 IPアドレス:

ひねりなし。hostを使う例はなぜかあまり見かけなかった。

% host www.usptomo.com | awk '$0=$NF'  
157.7.203.188

_ Q2 ひらけ!ポンキッキ:

これは練習しすぎてたので、zshとnodeの例を。

% echo ひらけ!ポンキッキ | zsh -c 'read a;a=$a$a;repeat 9 echo $a[++i,i+8]'
ひらけ!ポンキッキ
らけ!ポンキッキひ
け!ポンキッキひら
!ポンキッキひらけ
ポンキッキひらけ!
ンキッキひらけ!ポ
キッキひらけ!ポン
ッキひらけ!ポンキ
キひらけ!ポンキッ
% node -e 'a="ひらけ!ポンキッキ";for(i=0;i<a.length;i++){console.log((a+a).slice(i,i+a.length))}' 
ひらけ!ポンキッキ
らけ!ポンキッキひ
け!ポンキッキひら
!ポンキッキひらけ
ポンキッキひらけ!
ンキッキひらけ!ポ
キッキひらけ!ポン
ッキひらけ!ポンキ
キひらけ!ポンキッ

_ Q3 リダイレクトせずにファイルに保存:

標準入力をファイルに保存するコマンドってあまり見かけない。
それだけリダイレクトが偉大だということか。

% awk '/\/bash$/{print > "hoge"}' /etc/passwd
% grep '/bash$' /etc/passwd | sort -o hoge
% grep '/bash$' /etc/passwd | cp /dev/stdin hoge
% grep '/bash$' /etc/passwd | dd of=hoge
0+1 レコード入力
0+1 レコード出力
32 バイト (32 B) コピーされました、 0.000439506 秒、 72.8 kB/秒

/dev/stdinは忘れがちではあるが、まあ、これが無難か。ddはメッセージがうっとうしい。

_ Q4 すけふぇにんけん:

この問題に限ればsed 'y/すけふ/ずげぶ/'で済む話ではあるが、nkfとか使う方法もあるようで。

$ echo すけふぇにんけん | sed 's/./&゛/g' | nkf -h2 | nkf -Z4 | nkf --hiragana | sed 's/゛//g'
ずげぶぇにんげん

SKKだと半角仮名の濁点が入力できないので全角だけでいける方法を探った。

_ Q5 *を1秒ごとに表示:

whileを禁止されたのでyesを使ってみたが、^Cで死ななくて困る。

% yes | awk '{printf "*";system("sleep 1")}'

^Zしてkill %1で殺した。すなおに

% yes 'echo -n "*";sleep 1' | sh

でよかったようで。これなら^Cで死ぬ。

_ Q6 暗号解読:

最後が0a00という時点で、ああ、little endianでunicodeなんだなと気づく。
あとは力技。printfだとなぜか\u000aを理解してくれないのでbashのechoで。

% echo b730a730eb30b8820a00 | sed 's/\(..\)\(..\)/\\\\u\2\1/g' | xargs bash -c 'echo -ne $1' -
シェル芸

nkfの-W16Lで簡単にいけるらしい。

_ UNIX時刻素数:

jotを使ってみた。

% jot $((60*60*24-1)) $(date +%s -d2016-10-29Z) | factor | awk '$0*!$3{print "@"$2}' | date -uf- +'%F %T'

ZをつければUTCになる。

_ サイン波:

縦横変換。printf二段構え。

% seq 60|awk '{printf "%-20s\n", sprintf("%*s",sin($0/3)*10+10.5,"*")}'|sed 's/./&\t/g'|rs -T -c -g1                
                        * * *                                 * * *                                 * * *              
                      *       *                             *       *                             *       *            
                                                                                                                       
                                *                                                               *                      
                    *                                     *           *                                     *          
                                                                                                                       
                                  *                                                           *                        
                  *                                     *               *                                     *        
                                                                                                                       
                                                                                            *                          
                *                   *                 *                   *                                     *      
                                                                                                                       
*                                                                                                                      
                                      *             *                       *             *                            
              *                                                                                                   *    
  *                                                                                                                    
            *                           *         *                           *         *                           *  
    *                                                                                                                  
          *                               *     *                               *     *                               *
      * *                                   * *                                   * *                                  

OFSをうまく使うとprintfが不要になる。

% seq 60|awk '{$(sin(NR/3)*10+12)="*";$1=$23=""}OFS=" \t"'|rs -T -c -g0 
                                                                                                                       
                        * * *                                 * * *                                 * * *              
                              *                                                                   *                    
                      *                                     *       *                                     *            
                                                                                                                       
                    *           *                         *           *                         *                      
                                                                                                            *          
                                                                                                                       
                                  *                     *               *                     *                        
                  *                                                                                           *        
                                                                                                                       
                                    *                 *                                     *                          
                *                                                         *                                     *      
                                                                                                                       
*                                     *                                                   *                            
              *                                     *                       *                                     *    
                                                                                                                       
  *                                     *         *                           *         *                              
            *                                                                                                       *  
    *                                     *     *                               *     *                                
      * * *                                 * *                                   * *                                 * 

微妙に形が違うが気にしない。


2016-10-11 (Tue)

中旬

フィラー


2016-10-01 (Sat)

上旬

フィラー


2016-09-21 (Wed)

中旬

フィラー


2016-09-17 (Sat)

PS3のHDDが死んだ

torneの調子が悪いので終了したら2回ほどピッと鳴って黒い画面に。
その後勝手に再起動して
「本体ストレージ上のファイルシステムが破損しているため、修復します」
と出てOKを押しても、しばらくすると黒い画面になって再起動。
3回ほど繰り返してぐぐってみるとこれはもうだめみたいなので、
セーフモードで起動して修復を試みるもやはりだめ。
この時点であきらめて大人しく初期化する。
ゲームとしては全く使ってないので消えたのは録画データだけだが、
幸いnasneのほうを主に使っているし、
まあ、一度見たものなのであまり惜しくはない。

torneのメディアを探しまくったりといろいろあったが、とりあえず復旧。
なんか動作がきびきびしてるような。やっぱデフラグ的なもんが必要なんだろうか。
定期的に初期化するか。


10月下旬の日記 | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!