アニメ『orange』
未来から届いた自分からの手紙。16歳の自分に後悔させないための手紙。アドバイスが正しいことが分かっていても、勇気が出せなくて、どうにもならないと思ってしまう。それでも悩んで少しずつ前進。すると、手紙には書かれていない出来事も起こり始めて。。。まだ3話ぐらいしか見ていないので、大人になった自分のシーンと、高校生の時のシーン、それに未来からの手紙が、全く結びつかず謎なので、もやもやしながら見ています。でも全部見終わったら感動するような予感はしてて、毎話待ち遠しく試聴しています。
もし私が過去の自分にアドバイスするとしたら、文章ではしないと思います。破ってしまうからです。どのようにして過去の自分に、信じさせるかが一番の問題なんです。おそらく過去の自分は、手紙を見た瞬間に破り捨てるでしょう。封筒に「やぶるな」と書いても、天邪鬼なので破ってしまいます。ロト6の当たり番号在中、と書いてあっても破ります。馬鹿なの!? 自分。
説得するにはたぶん、10年後と20年後の自分も連れて行き四者会談必要かと思います(どこかのCMで見たような)。
未来からのアドバイスがうまくいってるか知るには、やはり予定している出来事との差を確認することでしょう。ソフトウェアにおいても、差分は問題解決の糸口なので、差分抽出が柔軟に出来るようにスキルアップすれば、生産性アップすることうけあいです。
前回と同じく実験用に2つのファイルを作成します。to.txtは、from.txtからのコピーです。
~$ seq 10 > from.txt ~$ cp from.txt to.txt ~$
diffしてみます。
~$ diff from.txt to.txt ~$
当然一致します。
差分を作っていきます。sedで2行目を2からMODIFEIDに変更してみます。
~$ sed 2cMODIFIED -i to.txt
差分をdiffで見てみましょう。左右での比較と、デフォルトの表示です。
~$ diff -y -W50 from.txt to.txt 1 1 2 | MODIFIED 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 ~$ diff from.txt to.txt 2c2 < 2 --- > MODIFIED ~$
2c2以降は、from.txtの2行目とto.txtの2行目が、後に続いているテキストにあるように、それぞれ「2」と「MODIFIED」であることを示しています。
to.txtの3行目も変更してdiffを確認しましょう。
~$ sed 3cModified -i to.txt ~$ diff -y -W50 from.txt to.txt 1 1 2 | MODIFIED 3 | MODIFIED 4 4 5 5 6 6 7 7 8 8 9 9 10 10 ~$ diff from.txt to.txt 2,3c2,3 < 2 < 3 --- > MODIFIED > MODIFIED ~$
2,3c2,3以降は、from.txtの2〜3行目とto.txtの2〜3行目の差分を表しています。
さらに、to.txtの4行目を変更。
~$ sed 4cMODIFIED -i to.txt ~$ diff -y -W50 from.txt to.txt 1 1 2 | MODIFIED 3 | MODIFIED 4 | MODIFIED 5 5 6 6 7 7 8 8 9 9 10 10 ~$ diff from.txt to.txt 2,4c2,4 < 2 < 3 < 4 --- > MODIFIED > MODIFIED > MODIFIED ~$
コツが掴めました。from.txtの2〜4行目の内容「2」「3」「4」は、to.txtの2〜4行目で3つの「MODIFIED」に変更されていることを表しています。
次は削除です。to.txtの9行目を削除します。
~$ sed 9d -i to.txt ~$ diff -y -W50 from.txt to.txt 1 1 2 | MODIFIED 3 | MODIFIED 4 | MODIFIED 5 5 6 6 7 7 8 8 9 < 10 10 ~$ diff from.txt to.txt 2,4c2,4 < 2 < 3 < 4 --- > MODIFIED > MODIFIED > MODIFIED 9d8 < 9 ~$
9d8は、from.txtの9行目の内容「9」は、to.txtでは削除され8行目に該当しています。
テキストを追加してみます。to.txtの5行目と6行目の間にADDEDという一行を追加し、diffしてみます。
~$ sed 5aADDED -i to.txt ~$ diff -y -W50 from.txt to.txt 1 1 2 | MODIFIED 3 | MODIFIED 4 | MODIFIED 5 5 > ADDED 6 6 7 7 8 8 9 < 10 10 ~$ diff from.txt to.txt 2,4c2,4 < 2 < 3 < 4 --- > MODIFIED > MODIFIED > MODIFIED 5a6 > ADDED 9d9 < 9 ~$
5a6は、from.txtの5行目の後に、to.txtの6行目としてADDEDが追加が示されています。この時、さきほど9d8だった情報は9d9となりました。前方に行が追加されたためです。
さらに2行ADDEDを入れてみます。
~$ sed 5aADDED -i to.txt ~$ !! sed 5aADDED -i to.txt ~$ diff -y -W50 from.txt to.txt 1 1 2 | MODIFIED 3 | MODIFIED 4 | MODIFIED 5 5 > ADDED > ADDED > ADDED 6 6 7 7 8 8 9 < 10 10 ~$ diff from.txt to.txt 2,4c2,4 < 2 < 3 < 4 --- > MODIFIED > MODIFIED > MODIFIED 5a6,8 > ADDED > ADDED > ADDED 9d11 < 9 ~$
5a6,8は、from.txtの5行目の後にあたる行の、to.txtでは6〜8行目が、「ADDED」が3行追加されていることを表します。
先ほどと同様、削除行は前方に2行追加となっているため9d11となっています。
コメント