2023-03-01から1ヶ月間の記事一覧

シェルワンライナー #9

問題 apacheのログを決まった期間抜き出す問題 回答 cat log_range.log | sed -n '/24\/Dec\/2016 21:..:../,/25\/Dec\/2016 03:..:../p' sed -n '/hoge/,/piyo/p' について sed コマンドは、Unix系オペレーティングシステムで使われるストリームエディタで…

シェルワンライナー #8

問題 183.YY.129.XX - - [07/Nov/2017:22:37:38 +0900] ... こういう入力で午前と午後の行を数える 回答 cat access.log | awk '{split($4,a,":"); print a[2]}' | awk '{if($1>=0 && $1<12) am++; else pm++; } END{print "AM:" am ", PM:" pm}' 出力結果 A…

エクセルでマクロに割り当てるショートカットのおすすめ

なやんだのでchatgptにきいた。 良くない答えが帰ってきた。 結論 挙げられた候補のうちエクセルマクロは下記パターン以外は使えません。 - Ctrl + Shift + (任意のアルファベット) ChatGPT回答 一般的に、他のショートカットキーと被らないようにするために…

--coverage をつけてビルドエラーが起きた

状況 --coverageをコンパイルオプションに追加するビルドに失敗した。 一方で、コンパイルオプションに-fprofile-arcs, -ftest-coverage、リンカオプションに-lgcov だとビルドが成功した 公式ページには --coverageをコンパイルオプションに指定すると「コ…

shell script 特定ディレクトリをスキップ

# スキップしたいディレクトリ名をスペース区切りで指定 skip_dirs="hoge piyo" # 現在のディレクトリ以下で、名前が '*.dir' にマッチするディレクトリを検索し、それぞれに対してループを実行 for path in $(find . -name '*.dir' -type d); do # path の…

メモ

やりたいことをchatgptにきいた。 後で記事にするためまとめ直す。 以下のスクリプトでは、find コマンドを使って、*.gcno ファイルを検索し、結果を配列 find_output に格納しています。 #!/bin/bash # find コマンドで *.gcno ファイルを検索 find_output=…

シェルワンライナー #7

問題 与えられたテキストに対する税率の計算。 2019/10以前なら8%。それ以降ならば、8%と10%。商品名に*がついているのは8%。 1 20190901 ゼロカップ大関 10000 2 20190902 *キャベツ二郎 130 3 20191105 外食 13000 4 20191106 ストロングワン 13000 5 2019…

シェルワンライナー #6

問題 下の出力 が 得 られる ワン ライナー を 作っ て ください。 x x x x x 回答 seq 5 | awk '{for(i=5;i>$1;i--){print " ";} print "x";}' # これだと改行しちゃう # 改行したくないときは printfを使えばOK seq 5 | awk '{for(i=5;i>$1;i--){printf " …

GoogleTest TEST_P使い方

ChatGPTにきいた 後で触ってまとめ直す予定 A Google Test(gtest)は、C++で書かれたコードをテストするためのフレームワークです。TEST_P()マクロは、パラメータ化されたテストを定義する際に使用します。パラメータ化されたテストは、複数の入力値を持つ…

カレントディレクトリ配下のfileをtouchしたいとき

結論 こんな感じでxargsを使えばOK find -name *.cpp | xargs -I {} touch {} 解説 このコマンドは、カレントディレクトリ以下のすべての .cpp ファイルを検索し、それらのファイルに対して touch コマンドを実行するもの。 findコマンドは、指定された条件…

階層化された複数のCMakeLists.txtで同じコンパイルオプションを共有する方法

ChatGPTさんに質問した情報をメモに残す。 TODO: あとで自分で試して推敲する。 メモ 最も一般的な方法は、最上位のCMakeLists.txtで共通のコンパイルオプションを設定し、それらを下位のディレクトリに伝播させることです。 最上位のCMakeLists.txtで、以下…

シェルワンライナー: 問題5

問題 ファイル ntp.confについて、poolの項目( 1列目にpoolと書かれている行)にあるサーバの名前 を抽出してみましょう。 回答 # 自分の回答 cat ntp.conf | awk '$1=="pool" {print $2}' # ちなみにテキストの答えはこちら # こっちのが書きやすい。 # ス…

シェルワンライナー160本ノック: 問題4

問題 まず、ランダムな数字が入ったファイルをたくさん作る $ mkdir ./tmp $ cd ./tmp $ seq 1000000 | sed 's/^/ echo $ RANDOM > /' | bash これで1000000個のファイルが作成され、各ファイルに0-32767のうち一つの整数がランダムに記述されている。という…

静的リンク(静的ライブラリ)、動的リンク(共有ライブラリ)について

静的リンク、動的リンクについて、理解できてなかったので調べた。 まとめ 静的リンク ライブラリのコードがアプリケーションの実行ファイルに直接リンクされる。 ライブラリは、静的ライブラリ(.aファイル)の形式で提供されることが一般的。 実行ファイル…

CMakeのfind_package()とadd_difinitions()について

find_package 概要 疑問と調べた結果 1: CMake側が勝手にパッケージを探してくれる理解で良いか? 2: BoostとかOpenCVとかのパッケージはライブラリ開発側が用意してくれているの? add_difinitions 概要 疑問と調べた結果 add_definitionsではオプションの…

アクティブシートから特定の書式のセルの数をカウントするマクロ

VBA

つくるもの 作業するときに、エクセルでメモを残しながらやっている。 セルの書式毎に「疑問」とか「解決済み」とかタグをつけながらやっている。 発散してくると、「疑問点何個残ってるんだっけ?」となるので集計したい。 いつもの作業イメージ いつもの作…

CMakeLists.txtの再帰的検索とサブディレクトリの追加

はじめに CMakeを使用したプロジェクトのビルド設定では、CMakeLists.txtファイルを用いてプロジェクト構成を定義する。特に、大規模なプロジェクトや階層構造が深いプロジェクトの場合、カレントディレクトリとそのサブディレクトリ内にあるすべてのCMakeLi…

シェルスクリプト `if [ -s hoge.txt ]; then` の意味

疑問 下記のシェルスクリプトに出会ったが意味がわからなかったので調査しました。 if [ -s hoge.txt ]; then rm hoge.txt fi 調査結果 このシェルスクリプトは、hoge.txt というファイルが存在し、かつサイズが0より大きい(空でない)場合に、そのファイル…

command > /dev/null 2>&1 の意味

疑問 シェルスクリプトで下記のような記述に出会ったのでなんのことか調べてみた。 command > /dev/null 2>&1 # command は任意のコマンドのこと 調べた結果 Linuxコマンドので任意のcommandを実行し、その際の標準出力と標準エラー出力を捨てることを意味し…

ExcelVBAでQA表テンプレートを自動作成

VBA

作るもの マクロコード抜粋 感想 改訂履歴 作るもの こんな感じのQA表テンプレートを作るためのマクロを実装 QA表シート pulldown用のシート マクロコード抜粋 Sub QA表作成() Dim NewSheet As Worksheet Dim ActiveSheetIndex As Long ' アクティブシートの…

シェルワンライナー160本ノック: 問題3

問題 下記コマンドで100万個ファイルを作る $ mkdir ./tmp $ cd ./tmp $ seq 1000000 | xargs -P 2 touch このファイルを先頭に0つけて7桁のファイルにするようにする 答え $ time ls -U | xargs -P2 rename 's/^/0000000/;s/0*([0-9]{7})/$1/' 解説 まず re…

イギリス旅行

イギリス旅行にいきました ※まずは、脳みそのことを吐き出します。 ※気が向いたら、写真やらをつけながら校正するかもです。 はじめに 2023/02/16 - 2023/02/23の期間でイギリス旅行へいった。 転職に伴う有休消化のため、行くしか無い。ということで。 雑多…