「ワンライナー」とは、たった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
15週:2024/4/8(月)〜2024/4/14(日)のことを書きます。 [つくりおき] [やったこと] [読書] [ソフトウェア開発] [まとめ]
仕事でsedのコードをパパッと書いて使ったら、コードレビューで動かんと言われてしまった。そういえば、同僚はMacで、おれはLinuxだったな。 まぁsedならよくある話なので、しょうがないと思ってawkで同じことをした。awkは比較的もうちょっと互換性がある気がしているからだ(どっこいどっこいな気もする)。 しかしまだ動かないと言う。もう、大絶叫だ。アー。おしまいだ。カスがよ〜〜〜と思いつつ(社会人なので絶叫はしない)、よく調べてみるとmakeの互換性だった。というのも、試しにbrew install makeしてGNU Makeで試してみてくれ、と言ったら、あっさり動いたからである。実はse…
他人から受け取ったファイルは文字エンコードがShift_JISだったり、BOMがついていたり、改行コードがCRLFだったりする。 そのままファイルの編集を続けると、システムに繋げたり乗っけたりするタイミングで問題が発生しやすいから、BOMなしUTF-8 改行コードLFに統一したい。 通常の開発であればIDEやエディタに.editorconfigを追加すればよい。 ただし、そういった方法が取れない/取るまでもない状況もある。 そのような場合に使えるワンライナーを作ったからメモしておく。 事前にnkfコマンドのインストールが必要。 find -type f -not -path './.git/*…
PowerShellのワンライナーを使うと、Windows環境だけで手軽にパスワードを生成できるというメモ。.jsのような別ファイルを用意する必要もない。 Windowsでパスワード生成するコマンド クリップボードに貼り付けたいとき 10個パスワード生成したいとき (adsbygoogle = window.adsbygoogle || []).push({}); Windowsでパスワード生成するコマンド 例えば8桁のうち1文字は特殊文字 (@、#、!、%、& など) を含ませる場合はPowerShell上で以下を実行する。 必要に応じて(8,1)の部分を変更する。 Add-type -As…
14週:2024/4/1(月)〜2024/4/7(日)のことを書きます。 [つくりおき] [やったこと] [読書] [ソフトウェア開発] [まとめ]
13週:2024/3/25(月)〜2024/3/31(日)のことを書きます。 [つくりおき] [やったこと] [読書] [ソフトウェア開発] [まとめ]
久しく書いていなかった振り返りを書いてみる。 取り組んだこと ワークショップ・勉強会関連 Rails Girls Tokyo 16thのオーガナイザーをSTORESのえんじぇるさんとやった。 去年、オーガナイザーをやるか結構迷ったけれど、結果的にやってよかった。 詳しくは以下にまとめています。 maimux2x.hatenablog.com しんめ.rbというプログラミング実務経験が2年くらいまでの人を対象にしたコミュニティをお試しで立ち上げてみた。 自分がこういう場が欲しかったというのが一番の動機ですが、4月から定期開催でやってみようと思っています。 maimux2x.hatenablog.…
12週:2024/3/18(月)〜2024/3/24(日)のことを書きます。 [つくりおき] [やったこと] [読書] [ソフトウェア開発] [まとめ]
こんにちは!ラクスル事業本部でエンジニアをやっています、灰原です! 皆さんは普段の開発でGitHubのPersonal Access Token (PAT) を使うことはありますか? ラクスルではいくつかの社内パッケージをGitHub Packagesで管理しており、それらのインストールのためにPATが使われています。 例えばRubyのgemであればbundle configコマンドでPATを指定したり、npmパッケージであれば.npmrcファイルにPATを書いたりします。この対応自体はGitHub Packagesのドキュメントにも書かれているものですが、言わずもがなPATの扱いには注意が必…
VMware PowerCLIで仮想マシンのCPU/メモリのhot-addを確認するコマンドに関する情報です。 PowerCLIはWindows端末から操作できるのですごく便利なツールです。 VMwareの仮想環境を使っているならおすすめのツールです。 続いて、海外のサイトに便利なコマンド情報がありました。 前回の投稿で、ホット アド機能を有効または無効にする関数をいくつか作成しました。これらの設定を確認するには、次のワンライナーを実行します。 Get-VM | Get-View | Select Name, `@{N="CpuHotAddEnabled";E={$_.Config.CpuHo…
11週:2024/3/11(月)〜2024/3/17(日)のことを書きます。 [つくりおき] [やったこと] [読書] [ソフトウェア開発] [まとめ]
3/16~17にICTトラブルシューティングコンテスト2023の本戦に参加してきました! 結果は僕が所属するチームKMCは5位でした。チーム全員初参加にしては頑張った方なんじゃないかなと思います。 来年は優勝目指して頑張ります! icttoracon.net オフラインでの開催でいろんな人と会えるのはやっぱり良いですね。 オンラインではKMCと仲が良いtraPの人々と初めて会えたり、インターンで知り合った人と再会したり... いろんな方と話せて楽しかったです! せっかくなので、本戦で僕が解いた問題について感想とかを書いていこうかなと思います。 問題の感想 [vkm] VKM シェル芸の問題です…
こんにちは。電通総研コーポレート本部システム推進部の山下です。 AWSでサービスを構築していると、固定IPでサービスを公開したい場合があります。 DNSなどのIPで通信先を指定するようなサービスでは、AWSではNetwork LoadBalancer(NLB)を利用するのが一般的です。 本記事では、AWS Cloud Development Kit (CDK) を使ってElastic Container Service (ECS) とNLBを組み合わせてサービスを公開する方法について紹介します。 CDKのNetworkLoadBalancedFargateServiceを使ってサービスを公開す…
10週:2024/3/4(月)〜2024/3/10(日)のことを書きます。 [つくりおき] [やったこと] [読書] [ソフトウェア開発] [まとめ]
少し前にこちらの本を拝読しました。 1日1問、半年以内に習得 シェル・ワンライナー160本ノック [ 上田 隆一 ]価格: 3520 円楽天で詳細を見る 読もうと思ったわけ サーバーを触ることはあるので、基本的なコマンド操作はできるのですが、|とか>とか&とかが出てくる長めのコマンドになると「何か分からん…とりあえずコピペ……」状態になってしまう自分を少しでも変えたいと思ったので手に取ってみました。あと、ちょっとした操作をシェルスクリプトで自動化できる同僚がかっこいいな〜と思っていたからです。 結果 本の題名には「半年以内に習得」と書いてありますが、私は約4ヶ月で読み切ることができました。一日…