課題 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 と言えば、指定したコ…
課題 解決策 入力 データ正規化 総和計算の準備(1) 総和計算の準備(2) 総和計算の準備(3) 総和を求める 日付情報を付加する 最大値を持つ区間を集約 不要な情報を上書き カウントと解答の抽出 スクリプト全体像 所感 課題 paizaで公開されている以下の…
注意事項 イベント情報 舞台挨拶 はじめに 映画祭 演者のその後 QA.1 QA.2 QA.3 プレゼント争奪じゃんけん おわりに 注意事項 個人的なメモを書き起こしたものです。 細かい言い回し等まで完璧に再現できているものではありません。 また内容に誤りを含む可…
セキュリティ 請求 参考 セキュリティ 項番 対応 料金 補足 1 ルートのMFA認証を設定 無料 2 管理者ユーザを作成 無料 管理者グループ(ポリシー:AdministratorAccess)に所属させる 3 管理者ユーザのMFA認証を設定 無料 4 IAMユーザへの請求情報へのアクセ…
はじめに 1日目:3/13(水) (自宅→伊丹空港) 搭乗の手続き (伊丹空港→新潟空港) (新潟空港→新潟港) 乗船の手続き (新潟港→両津港) 『アイの歌声を聴かせて』の聖地巡礼 (両津港佐渡汽船バス停→相川バス停) (相川バス停→宿泊所) ホテルみやこで…
課題 解決策 参照範囲の観点での概観 各変数の説明 エクストラ変数(extra variables) 環境変数(environment variables) プレイ変数(play variables) マジック変数(magic variables) インベントリ変数(inventory variables) レジスタ変数(register…
課題 正規表現には様々な種類が存在すると聞くが、基本として覚えるべき正規表現はどのようなものか知りたい。 解決策 POSIXの範囲内では以下の3種類の正規表現が存在する。 まずはこれらを学習すると良いのではないか。 種類 略称 基本正規表現 BRE (Basic …
注意事項 個人的なメモを書き起こしたものです。 細かい言い回し等まで完璧に再現できているものではありません。 また内容に誤りを含む可能性があります。 ご了承ください。 致命的な誤りがありましたら修正しますのでご指摘をお願いします。 イベント情報 …
注意事項 個人的にメモとして書き留めていたものを書き起こしたものです。 細かい言い回し等まで完璧に再現できているものではありません。 また内容に誤りを含む可能性があります。 ご了承ください。 致命的な誤りがありましたら修正しますのでご指摘をお願…
はじめに 公開前 公開後 現在 はじめに 先の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を購入し、本日手元に到着しました。 米国での発売は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コマンドで …
課題 ヌルコマンドという何もしないらしいコマンドの存在理由がわからない。 解決法 ヌルコマンド(:)は、呼び出しても何も実行せず、"たいていは"成功を返すコマンドである(失敗させる実行方法は今回は述べない)。 ヌルコマンドはその特異性により実は…
注意事項 個人的にメモとして書き留めていたものを書き起こしたものです。 細かい言い回し等まで完璧に再現できているものではありません。 また内容に誤りを含む可能性があります。 ご了承ください。 致命的な誤りがありましたら修正しますのでご指摘をお願…
課題 複雑ではない条件分岐のために毎回 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 このスクリ…