2023-01-01から1年間の記事一覧

映画『かがみの孤城』公開の前と後(私語り)

はじめに 公開前 公開後 現在 はじめに 先の12月23日をもって映画『かがみの孤城』が公開から一年を迎えました。 いちファンとして、この映画が今でも日本のどこかで、または海外のどこかで上映されていることを嬉しく思います。 私自身、映画館に足繁く通っ…

パイプラインでのデータ喪失の現象に暫定対処する(シェルスクリプト)

課題 パイプラインの中で別のマシンへログインする操作を含む場合、パイプラインを流れているはずのデータが喪失する。 例えば以下のようなスクリプトを考える。 これを実行すると標準出力には1から10までの数値が出力されることが想定される。 seq 1 10 | w…

副作用の影響を局所化する(シェルスクリプト)

課題 解決策 所感 課題 小さい機能を実現するために必要な変更がスクリプト全体へ影響を及ぼしてしまうので気を使う。 例えばカレントを変更したり変数に値を代入したりすることだ。 どのようにすれば影響を局所化することができるのか。 具体例を示す。 カ…

データを処理する(シェルスクリプト)

課題 解決策 データを数える データをソートする 特定のデータを抽出する 特定のカラムについて集計する データを加工したうえで集計する 所感 課題 ターミナル上で大量のデータを処理したい。 例えば、センサーからストリーム出力されるデータをその場でサ…

映画『かがみの孤城』鑑賞記録

記録 No 日付 シアター 1 2022/12/23 AC四條畷 2 2022/12/25 AC大日 3 2022/12/26 AC四條畷 4 2022/12/28 梅田ブルク 5 2022/12/28 なんばパークスシネマ 6 2022/12/29 大阪ステーションシティシネマ 7 2022/12/29 ACシアタス心斎橋 8 2022/12/30 TOHOくずは…

実行環境によって利用するコマンドを選択する(シェルスクリプト)

課題 ウェブコンテンツをダウンロードするツールとして wget コマンドや curl コマンドが代表的だが、スクリプト実行環境でどちらが利用可能かあらかじめわからない。 このようなときはどのようにスクリプトを記述すれば良いか。 解決策 実行環境で利用でき…

映画『かがみの孤城』米国版でのこころの願いごと

はじめに 今までにいくつかの媒体でかがみの孤城を鑑賞しました。 最近鑑賞したのは米国版映画(Blu-ray)になりますが、その中でのこころの願いごとの表現が気に入ったので、他の媒体と比較して紹介します。 比較 媒体 表現 日本版映画 どうかアキちゃんを…

映画『かがみの孤城』米国版Blu-ray

はじめに 購入方法 視聴しての所感 はじめに かがみの孤城が好きすぎて、米国版のBlu-rayを購入し、本日手元に到着しました。 米国での発売は2023/09/26で、その前に予約購入をしていました。 到着するまでにけっこうな日数がかかってしまいましたが、無事に…

排他制御を実現する(シェルスクリプト)

課題 同時に複数のプロセスが処理をしてはならないクリティカルセクションを用意したい。 シェルスクリプトではどのように排他制御を実現することができるのか。 解決法 mkdir コマンドを利用する。 排他制御と mkdir コマンドには一見して関連がないように…

入力データの追加を監視する(シェルスクリプト)

課題 次々と入力されるデータを監視し、そのデータに対して処理を行いたい。 解決策 tail コマンドの -f オプションを利用する。 これはファイル(または名前付きパイプ)に追加されるデータをリアルタイムで監視して出力するものである。 tail コマンドは P…

ターミナルに蒸気機関車を走らせる(シェルスクリプト)

課題 会議中に暇になったのでターミナルでアニメーションを表示したい。 解決策 sl コマンドを利用する。 sl コマンドはジョークコマンドの一種である。 sl コマンドを実行するとターミナル上にアスキーアートの蒸気機関車が走る。 sl コマンド実行時の様子 …

行番号を付加する(シェルスクリプト)

課題 後続の処理で利用するためにパイプラインを流れるデータに行番号を付加したい。 解決法 以下のような方法がある。 nl コマンドを利用する awk コマンドを利用する sed コマンドを利用する cat コマンドを利用する nl コマンドを利用する nl コマンドは…

個人のエイリアス設定を回避する(シェルスクリスプト)

課題 作成した環境とは別の環境で、あるシェルスクリスプトを起動したとき、うまく実行されなかった。 どうやら実行環境のエイリアス設定が影響しているようだ。 例えば .bashrc で以下のようなエイリアスが設定されている。 alias rm='rm -i' rmコマンドで …

「何もしない」コマンドを利用する(シェルスクリプト)

課題 ヌルコマンドという何もしないらしいコマンドの存在理由がわからない。 解決法 ヌルコマンド(:)は、呼び出しても何も実行せず、"たいていは"成功を返すコマンドである(失敗させる実行方法は今回は述べない)。 ヌルコマンドはその特異性により実は…

映画『かがみの孤城』舞台挨拶 内容書き起こし(2023/09/17)

注意事項 個人的にメモとして書き留めていたものを書き起こしたものです。 細かい言い回し等まで完璧に再現できているものではありません。 また内容に誤りを含む可能性があります。 ご了承ください。 致命的な誤りがありましたら修正しますのでご指摘をお願…

簡易的に条件分岐する(シェルスクリプト)

課題 複雑ではない条件分岐のために毎回 if 文を記載するのが面倒くさい。 他に条件分岐する方法は無いのか。 解決法 && リストを利用する。 && リストはもともと左右両方のコマンド(パイプライン)が成功したときに成功を返すことを表現する構文である。 …

簡易的に引数をチェックする(シェルスクリプト)

課題 例えば個人的に利用するようなスクリプトでは、厳格な引数チェックを行う必要はないだろう。 一方で、明らかな誤りを弾くために、ある一定のレベルでは引数チェックを行いたいときがある。 どのような引数チェックができるのか。 解決法 引数の数をチェ…

標準入力の内容を逆順に出力する(シェルスクリプト)

課題 標準入力を逆順に出力する方法をたくさん知りたい! 入力例は以下とする。 $ seq 1 10 1 2 3 4 5 6 7 8 9 10 解決法 tac を使う 言わずとしれたコマンド。 GNU coreutilsに含まれる。 コマンド名は cat の逆順に由来。 もちろん POSIX 非規定なので注意…

見通しよくファイルの一覧を確認する(シェルスクリプト)

課題 ls コマンドでファイルの一覧を確認するとき、ファイルの数やファイル名の長さによって表示がまちまちになり、分かりづらい。 $ pwd / $ ls Applications Users cores home sbin var Library Volumes dev opt tmp System bin etc private usr 解決法 ls…

「それ」を解釈するのは誰?(シェルスクリプト)

課題 以下のようなディレクトリ構造を考える。 $ tree . ├── dirl1 │ ├── dirl2 │ │ └── scriptl2.sh │ └── scriptl1.sh └── scriptl0.sh このディレクトリを再帰的に探索して、すべてのシェルスクリプトのファイル(拡張子が.shのファイル)を出力するため…

スクリプト名を取得する(シェルスクリプト)

デバッグ等の目的でスクリプト名を取得して出力したい状況はしばしば発生する。 シェルスクリプトでは$0を参照することでスクリプト名を取得することができる。 例えば以下のようなスクリプトを作成する。 $ cat testscript.sh #!/bin/sh echo $0 このスクリ…

映画『かがみの孤城』ティーチイン 第3回 内容書き起こし

注意 個人的にメモとして書き留めていたものを書き起こしたものです。細かい言い回し等まで完璧に再現できているものではありません。また内容に誤りを含む可能性があります。ご了承ください。 致命的な誤りがありましたら修正しますのでご指摘をお願いしま…

ブログ始めました(冷やし中華風)

映画系のこと、技術系のこと、ミリオンライブのこと等を書いていきたいと思います。