「ワンライナー」とは、たった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…
意味 nバイトごとに改行する。 2バイト区切りにスペースを入れて、8列で表示 コード xxd -p sjis.txt | fold -b2 | xargs -n 8 解説 fold -b2の後ろにxargsを付けないと 01 02 03 … みたいな感じで出力される。xargsで8個にまとめる作業をしているので、 01 02 03 04 05 06 07 08 09 0a … という形にまとまる。 この際、xargsが各値にスペース区切りを追加している。シェルプログラミング実用テクニック (Software Design plus)作者:上田 隆一技術評論社Amazon