C言語による浅いコピーと深いコピーの説明
2024年3月17日 c以下は、浅いコピーと深いコピーについて AI に回答させたもの。 C 言語だと内部の処理が見えるので理解が進む。 浅いコピー (シャローコピー): 浅いコピーは、オブジェクトの内部を再帰的にコピーする際に、データを参照としてコピーする。 つまり、コピーされた
続きを読むpushd, popd, dirs の基本的な使い方
2024年3月10日 linuxpushd でスタックにディレクトリを追加する pushdを使うと起こること。 cd を使ったときと同じようにディレクトリを変更する。 ディレクトリパスがディレクトリスタック(以降スタックと略記)に追加される。 スタックを表示する。 pushd を実行するたびに、スタックが
続きを読むジョブネットとコントローラの自作2
2024年3月3日 shellジョブネットコントローラの自作第二弾。 第一弾は awk を駆使して実現したが、 awk はコードが見づらく癖もあるため、ジョブコントロールに向かいないと感じていた。 また、ジョブの完了状態チェックをステータスファイルを用いて簡単化するため、今回は基本的にシェ
続きを読むシェルスクリプトで wait で待たずに終了ステータスを得るには
2024年2月22日 shell結論 : ps コマンドでジョブの実行状態をチェックして、終了していた場合にのみ wait で終了ステータスを拾えば良い。 bashの組込コマンド wait は、指定のプロセスが終了していなければ終了するまで待機するので、使い勝手が悪いことがある。 例えば次のケースを考え
続きを読むシェルスクリプトでタイマー作って指定日時にプログラムを実行する
2024年2月17日 shell業務で長時間かかる処理を夜間に実行したかったので、シェルスクリプトでタイマー ( timer ) を作成して、指定の時刻に自動実行できるようにした。標準的なコマンドや自作コマンドも実行可能。 実行例 ex1) ./timer "2024-02-17 23:00:00" mycommand param1 param2 ex2) ./timer "2024-02-17 02:30:00" find . -exec ls -l {} \; 1#!/bin/bash 2# 3# ファイル名:tim
続きを読むawk変数OFMTに指数形式を指定しても整数表示になる場合がある
2023年6月4日 awkawk の組み込み変数 OFMT は、print で実数を出力する際のフォーマット(Output FORmat)。 デフォルトは "%.6g" 。 但し、ある特定のケースにおいて、OFMTで指定した形式で出力されないことがある。 OFMTに指数形式を指定して整数値をprintした
続きを読むサンプルドキュメント linux の外部コマンド xmllint を用いて XPath のテストを行う。 この記事は XPathの動作確認(Excel VBA編) の linux 編である。 図1のXMLドキュメントファイルをサンプルとする。 構造としては、Studentsの子要素にStudentが複数
続きを読むbash で乱数値を取得するには、組み込み変数の RANDOM を使えば良い。 ただし、RANDOM で取得可能な乱数は 0 から 32767 まで。 32767 を超える乱数を取得するには、工夫が必要。 RANDOM を複数回使用する 例えば、0 から 10万までの乱数値を取得するには、以下のように RANDOM を2回使用
続きを読むbashの配列を連番で初期化するにはseqコマンドを使う
2023年6月3日 shellbash の配列の初期化などで、シーケンス(連続した値)を使用したい場合。 seq コマンドを使うか、または、シーケンス式を使う。 seq コマンドの場合 seq コマンドを使うと、引数に変数を使用できるので柔軟性がある。 例えば、var=5; arr=($(seq 1 $var)) とすれば、arr=(1 2
続きを読むsed のファイル出力コマンド w は遅いのでリダイレクトした方が良い
2023年5月21日 sedsed のファイル出力コマンド w は処理速度が遅いようだ。 以下の調査は、ファイル先頭200万件を別ファイルに出力する処理のパフォーマンスを、4パターンでで比較したもの。 sed の w コマンドの場合 → 2.810s sed の出力をリダイレクトする場合 → 0.180s awk の場合 → 0.223s head の場合 →
続きを読む