「ワンライナー」とは、たった1行だけのプログラムです。PerlやRubyを使うと、1行だけでもかなりの仕事ができます。 プログラムを書きたいが、エディタを起動するほどの手間はかけたくない、というときに威力を発揮します。達人ともなると、ちょっとした文字置換や計算をするワンライナーを、即興で作って使い捨てることもあります。PerlやRubyは、ワンライナーを書くために役立つオプションを豊富に持っています。
特定のディレクトリ以下にある全てのファイルについて md5sum を計算するワンライナーです find -type f -print0 | xargs -0 md5sum > md5sum.txt コマンドの意味は find で再帰的にディレクトリを探索して 全てのファイル名をstdoutに出力 (-type f) xargs でファイル名を受け取って md5sum コマンドを起動 結果を md5sum.txt に保存 してますディレクトリ名やファイル名に空白が含まれている場合にも対応させるために find に -print0 をつけて xargs -0 で受け取るのがポイントです空白が含まれ…
ダウンロード時などに、進捗を表すグラフをターミナルでも見かけることが多く、「自分でもグラフっぽいの作れるんじゃないか!」と思ったので作ってみました 棒グラフを作ってみた 具体的には、二列のデータ(二列目は数値)から以下のようなグラフを作ることが目標です。 terminal_graph 方針 ターミナルからはみ出ては困るので、まず MAX の長さを決める 二列目の数値が最大のものをその長さに合わせる 他の値は最大のものとの相対比で決める 実装 # file のフォーマット: ラベル 値 $ cat hoge 0.3 6 0.4 21 0.5 142 0.6 693 0.7 1931 0.8 38…
簡単な作業を実行したいときに、ワンライナーで手早く処理するケースはそれなりに多く、その際に手慣れた言語を使用できると非常に便利である。 ここでは、 Ruby でワンライナーを書くために最低限必要となるオプション一覧をメモしておく。 以下に挙げるオプションさえ覚えておけば、最低限困ることはないはず...? -e オプション 引数にファイル名を取らずに、引数に与えられた文字列をそのまま Ruby スクリプトとして解釈して実行する。 Rubyでワンライナーを書く上で基本となるオプション。 $ ruby -e 'puts "ラーメン"' ラーメン -n オプション 標準入力として与えられた文字列の各行…
はじめに この記事は、ワンライナーマスターに向けてのエクササイズ記録です。 以下の書籍を用いて、1日1問解いて行きます。 1日1問、半年以内に習得 シェル・ワンライナー160本ノック (Software Design plusシリーズ) | 上田 隆一, 山田 泰宏, 田代 勝也, 中村 壮一, 今泉 光之, 上杉 尚史 |本 | 通販 | Amazon 2日目 事前にgawkをインストールしておくこと。 1.3.c grepによる検索と切り出し $ echo 中村 山田 田代 上田 | grep -o "[^ ]田" 山田 上田 1.3.d awkによる検索と計算 $ seq 5 | awk…
「ワンライナーで九九の表を生成する」というシェル芸の問題は、多くの解法が存在し非常にいい問題なのではないかと感じました。 そこで、自分が今思いつく答えをいくつかメモしておこうと思います(今回は細かいコマンドの使い方は紹介しておりません) ぜひ自分で考えた後にご覧ください! [目次] 基本二重ループ (cf) while ループの練習 AWK のみ python ワンライナー for ループを使わない ブレース展開とは おわりに 基本二重ループ まずはシンプルに、以下のような2重 for ループで実装します $ for i in {1..9}; do (for j in {1..9}; \ do…
こんにちは、TechFULでアルバイトをしている、berryberryです。 現在は、TechFUL PROと呼ばれる人工知能などの最先端技術を測定/学習するためのサービスに関連した問題の作成や英訳作業をおこなっています。 私は大学院で深層学習に関係する研究をおこなっているのですが、特にPyTorchをよく利用しています。 PyTorchは深層学習をおこなう上で非常に便利なPythonライブラリですが、ソースコードが少し長くなってしまうという問題があります。 ちょっと思いついたアイデアを試すのに長いソースコードを書くのは面倒ですよね?なんならエディタを開くのも面倒だと思います。(そんなことはな…
簡単なテキストの編集をする場合、よく使うけどすぐに忘れてしまう perl のワンライナーについて、備忘録としてここにまとめようと思います。 perl ワンライナー覚書 オプション [-e ]:コマンドラインのプログラムとして実行 [-l]:行末処理 [-E ]:コマンドラインのプログラムとして実行 [-n]:ループ処理 Perl の特殊変数 OS 名表示 エポック秒を日時に変換 よく使うワンライナー jpeg/jpgの拡張子を統一 csvファイルの内容について合計値を算出 perl ワンライナー覚書 オプション [-e ]:コマンドラインのプログラムとして実行 perl コマンドに「-e」オプ…
誤ってグローバル環境など別の環境にライブラリをインストールしたとき、依存関係でインストールされるものもあるので一つづつ削除するのは面倒です。 そこで、次のコマンドで一括で削除できます。 pip list --format json | jq '.[] | select((contains({name: "pip"}) | not) and (contains({name: "setuptools"}) | not)) | .name' | xargs pip uninstall -y 詳細 1. JSON形式でライブラリ一覧を表示 pip list --format json [{"name"…
故あってAWS環境のお掃除をすることがあり、その時にめんどくさい思いをしたのでメモです。Windows環境(コマンドプロンプト)で実施しています。 1.tl;dr (※Lambdaレイヤー全バージョン一括削除ワンライナー) 2.えるしっているか Lambdaレイヤーは1バージョンずつしかけせない 3.AWS環境のお掃除について(ポエム) 1.tl;dr (※Lambdaレイヤー全バージョン一括削除ワンライナー) for /l %i in (1,1,100) do (aws lambda delete-layer-version --layer-name 【Lambdaレイヤー名】 --vers…
Macユーザーだったらこんな経験があると思う。ネットからコマンドを丸々コピってきてターミナルに貼っつけたけどなんか上手くいかない。command not foundじゃない、コマンドはちゃんとある、コピペもミスってない。なんなんだ? 特に、シェル芸ワンライナー160本ノックをやってるときによくこの現象に遭遇した。例えば、以下のようなコマンドがある。 $ echo 2023/01/02 | date -f - '+%Y%m%d' 20230102 このコマンドをMacのターミナルにコピペして実行しても動かないが、Ubuntu環境とかで実行すると問題なく動く。この原因はコマンドの違いにある。Mac…
要はこういうことをしたい。 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 ↓ ghp_************************************ (これは GitHub の personal access token を例にしているが、このトークンはもう存在しない) いくつか要求があり、 全部置き換えるとわかりづらいので、一部はそのまま残したい。↑でいうと ghp_ の部分 他の部分を置き換える文字は決め打ちでいい。↑でいうと * でいい ただし、文字数は置き換えの前後で同じ長さを維持したい 残したい文字列のパターンがあらかじめ分かってないとダ…
rust-script(https://rust-script.org/)を使うとRustのソースコードをスクリプトとして実行できます。Rust 1.54以上が必要です。 今回は公式のマニュアル(上記URL)からいくつか抜粋して説明します。 以下の説明はUNIX系OSで実行することを前提としています。 インストール cargoをインストールしていれば、1コマンドで済みます。 $ cargo install rust-script スクリプトを書く cargo newでプロジェクトを作ってRustを書くときは依存クレートをCargo.tomlに記載しますが、rust-scriptの場合は//!か…
第4週:2023/1/23(月)〜2023/1/29(日)のことを書きます。え、もう1月終わり... [つくりおき] [各種タスク] [読書] [ソフトウェア開発] [まとめ]
概要 2023 年 1 月の振り返りです。 今月は以下を目標にしていました。 msksgm.hatenablog.com 概要 勉強概要 1 月の OKR 結果 注力分野の振り返り CI/CD テスト 2 月の OKR 読書 OKR の書籍 継続的デリバリーのソフトウェア工学 ソフトウェア品質を高める開発者テスト シェル・ワンライナー 160 本ノック 【この 1 冊でよくわかる】 ソフトウェアテストの教科書 [増補改訂 第2版] その他 美術展 技術記事の作成 その他 1 月の振り返りまとめ 勉強概要 今月は下表のように勉強していました。 今月は合計約 175.3時間です。 年末年始休暇を合…
MacBookを初期化したとき用に MacOSを最新化する 後から更新するとインストール済みアプリが動かなくなったりするから最初にやっておく。 MacOSの設定 システム設定を開き、各種設定していく。 Touch IDとパスコード > 指紋を追加 指の怪我に備えて2本以上登録しておくと良い 外観 > 外観モード > ダーク 壁紙 > カラー > 真っ黒を選ぶ ディスプレイ > 輝度を自動調節 と True Tone をOFFに トラックパッド > その他のジェスチャ > ページ間をスワイプ をOFFに Deckから使わないものを片付ける ゴミ箱へドラッグすることでもDeckから削除できる カレ…
ネットフリックスとスタンドアップコメディ いまやスタンダップコメディーを見るとなれば、Netflixがまずはじめに思い浮かぶほど影響力を増したストリーミング配信。 昔はナイトクラブでしか見れなかったスタンダップコメディ、ストリーミング配信がどういう影響を与えたのかを語る 「How streaming changed comedy with Vulture’s Jesse David Fox」というRecode Mediaのポッドキャスト番組のエピソードを紹介。 Recode Media: How streaming changed comedy with Vulture’s Jesse Dav…
ローカルWebサイト完成品当初と若干機能面で変更を行ったが....評価か出来るようになったので、ここからキーワード抽出機能など追加して自動評価機能を作ろうかと思ったり... Ahoy!毎日と言っておきながら週一になり始めているFlaxBearです。 今度は勉強&作業面の方が...orz 本などの作業ならある程度今日はどこまでと計画を立てることが出来るのですが 一から自分で考えて作っているものだと、なかなか計画が立てられないのが今後の課題ですね... 今日も作業&作業内容の進捗を書こうと思います。(23~28日分です) Ghost in the Wire 翻訳 完了 新刊技術書ローカルWebサイ…
C# ソースの (フォルダ再帰的な) ステップカウンタ ソースコードのファイル数・行数を簡便に知りたい。 dir /b /s から find /v /c へ繋いでワンライナー的にやれば ... といつも思って検索をかけるものの、なかなかズバリの解が出てこないため、バッチファイルでステップカウンタを自作した。 @echo off setlocal enabledelayedexpansion for /f "usebackq delims=" %%f in (`dir *.cs /b /s ^| findstr /v "\obj"`) do ( for /f "usebackq delims="…
やりたいこと Db2環境で発行するSQLにてテーブルに作成してあるインデックスの利用有無を確認する。 環境情報 DB2 v11.5 RHEL 7 やり方 db2explnコマンドを利用する。接続情報及びqオプションにて発行したいSQLを記載した結果にて $ db2expln -d sample -u DB2INST1 P@ssword -t -g -q "select * from sales where SALES = 15"以下のようにIndexが含まれているかどうかを確認する。 Optimizer Plan: Rows Operator (ID) Cost 12.6715 RETURN …
第3週:2023/1/16(月)〜2023/1/22(日)のことを書きます。 [つくりおき] [各種タスク] [読書] [ソフトウェア開発] [まとめ]
事象 crontab内で出力ファイルに日付を付与したかった。 そのため、dateコマンドを利用したいが、以下が詰まった。 "+%Y%m%d_%H%M%S" 部分がcron内ではエラーになる cronで実行するとJSTではなくUTC実行になる 対応方法 フォーマットの問題 \でエスケープする必要がある。 qiita.com cronでJSTではなくUTCになる 実行ユーザーの環境変数TZがUTCである。 変更すれば一番てっとり早いがこれだけのために変えたくない。 通常の実行であれば、以下で変更可能である。 TZ=JST dateしかしながら、どうもcron内ではTZの評価は揮発するみたいである。…
steamのバッチ作成で割引券を手に入れたので購入した Ahoy!今日はまともに作業&勉強していないFlaxBearです。 今月の残りはローカルWebサイト作成だけだから...(なお、FireBaseに異常なリクエストをかけてしまいまともに作業できませんでした...orz) 今日も作業&作業内容の進捗を書こうと思います。 Ghost in the Wire 翻訳 40%完了 新刊技術書ローカルWebサイト Webサイト作成中 1日1問題 シェル・ワンライナー160本ノック 27/160 で、今日は「The Truth Behind Those 9999 Numbers(「9999の数字に隠され…
今までスクレイピング後の新刊技術書はJSONファイル管理していたがFireBaseで管理しようとローカルWebサイト作成中 Ahoy!5日もブログを放置していたFlaxBearです。 お仕事が忙しかったので... 今日も作業&作業内容の進捗を書こうと思います。(17~21日分です) 2600: The Hacker Digest - Volume 33 日本語記事化&読み 完了 Security Testing with Raspberry Pi 翻訳 完了 ビジネスの現場で使えるAI&データサイエンスの全知識 読み 完了 行きたい大学に行くための基礎が身につく 高校一冊目の化学基礎 読み 6…
以前、「血圧グラフをgnuplotで描画する」を書いたのですが、血圧測定以降からグラフ描画以前までを割愛していました。 自分で環境を作ってグラフ化しています。 血圧測定 手くび 血圧計 EW-BW10 (この製品である必要はありません) 手くび 血圧計 EW-BW10 取扱説明書 | 血圧計 | Panasonic を使って血圧(上)、血圧(下)、心拍数を測っています。 購入した当時、他に測定後クラウドに結果をアップロードしてクラウド上でグラフ描画などできる製品があったのですが、その製品が高価だったのでその製品ではなく、安い上記の製品を買う事にしました。 血圧入力 測定した値はAndroidス…