データ群の列数を自在に調節する(シェルスクリプト)

課題 1列のデータを2列のデータにしたい。具体的には以下のようなイメージ。 $ seq 1 10 1 2 3 4 5 6 7 8 9 10 ↓ 1 2 3 4 5 6 7 8 9 10 解決策 xargs コマンドを利用すれば良い。 $ seq 1 10 | xargs -n 2 1 2 3 4 5 6 7 8 9 10 xargs と言えば、指定したコ…

paizaのランクA相当の練習問題をbashで解く

課題 解決策 入力 データ正規化 総和計算の準備(1) 総和計算の準備(2) 総和計算の準備(3) 総和を求める 日付情報を付加する 最大値を持つ区間を集約 不要な情報を上書き カウントと解答の抽出 スクリプト全体像 所感 課題 paizaで公開されている以下の…

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

注意事項 イベント情報 舞台挨拶 はじめに 映画祭 演者のその後 QA.1 QA.2 QA.3 プレゼント争奪じゃんけん おわりに 注意事項 個人的なメモを書き起こしたものです。 細かい言い回し等まで完璧に再現できているものではありません。 また内容に誤りを含む可…

アカウント作成後にやるべきこと(AWS)

AWS

セキュリティ 請求 参考 セキュリティ 項番 対応 料金 補足 1 ルートのMFA認証を設定 無料 2 管理者ユーザを作成 無料 管理者グループ(ポリシー:AdministratorAccess)に所属させる 3 管理者ユーザのMFA認証を設定 無料 4 IAMユーザへの請求情報へのアクセ…

佐渡旅行の備忘録(v0.1)

はじめに 1日目:3/13(水) (自宅→伊丹空港) 搭乗の手続き (伊丹空港→新潟空港) (新潟空港→新潟港) 乗船の手続き (新潟港→両津港) 『アイの歌声を聴かせて』の聖地巡礼 (両津港佐渡汽船バス停→相川バス停) (相川バス停→宿泊所) ホテルみやこで…

変数の種類を知る(Ansible)

課題 解決策 参照範囲の観点での概観 各変数の説明 エクストラ変数(extra variables) 環境変数(environment variables) プレイ変数(play variables) マジック変数(magic variables) インベントリ変数(inventory variables) レジスタ変数(register…

基本の正規表現を知る(正規表現)

課題 正規表現には様々な種類が存在すると聞くが、基本として覚えるべき正規表現はどのようなものか知りたい。 解決策 POSIXの範囲内では以下の3種類の正規表現が存在する。 まずはこれらを学習すると良いのではないか。 種類 略称 基本正規表現 BRE (Basic …

映画『かがみの孤城』『オトナ帝国の逆襲』舞台挨拶 内容書き起こし(2024/02/24)

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

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

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

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

はじめに 公開前 公開後 現在 はじめに 先の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 このスクリ…