コマンドラインの英雄


当初公開https://hoelz.ro/blog/unsung-heroes-of-the-command-line
コマンドラインは私のコンピュータとの相互作用の私の主要な方法であるので、私はしばしばそれの私の使用を最適化するステップを取るでしょう.ほとんどのコマンドラインユーザは基本を知っています:ls , cd , grep , ETC -これらはコマンドラインを使用して機器を構築するブロックです.しかし、実際には、いくつかの時間を保存することができますが、より専門的なプログラムが頻繁にありますし、私の人生は、昨年または2つに簡単にこれらの種類の特殊なプログラムのいくつかの顕著な例を共有したいと思います.あなたはそれらを知っていない場合は、うまくいけば、それらが有用見つけることができますあなたがそれらを知っているならば、うまくいけば、それはちょうど我々が両方とも我々のツールで良い趣味を持っていることを示すでしょう

道場


過去数年間、私は自分自身のデータをオンラインでより多くの作業をして下さい.様々なWebサービスやURLからコンテンツを取得するには、開発者であることの重要な一部となっている.単にデータをフェッチするために降りてくるとcurl . しかし、スライスとダイシングをしなければならないならばmojo .mojo コマンドラインユーティリティはMojolicious プロジェクト-それはPerlプログラマのための一種のウェブツールキットです.使用するためにPerlで熟練する必要はありませんmojo , しかし.mojo get URLでコンテンツを取得し、CSS 3セレクタを使用して特定の要素を選択し、さまざまなメソッドを使用して結果を変換できます.例えば、私は、私はsrc 属性img ページの要素.このようにして、私はmojo get ジョブを実行するには
    $ mojo get http://example.com img attr src
The img パートはもちろん、要素セレクタです以下の引数はメソッド名ですMojo::DOM を使用します.見つけたmojo get ドキュメントをこすって、それからいくつかの内容を抽出するのに非常に貴重であるために、さらにコマンドラインの下で使用するために.

JQ


オンラインデータのトレンドに沿って続けて、私はJSONとかなり頻繁に仕事を見つける.JSONからデータを抽出するスクリプトを書く代わりに、使用できますjq . 「JSONデータのためにsed」としてそれ自身を記述する便利なプログラムです、そして、私はそれがこの考えに耐えているように感じます.ジャストインボイス. 演算子(現在のオブジェクトを選択する)はJSONのチャンクをかなり印字します:
    $ cat chunk-of.json | jq .
あなたは、ドキュメントの特定のキーを. 演算子:
    $ cat chunk-of.json | jq .result
jq's セレクタの構文を理解し、思い出すのは簡単です-私は確実にどのように基本的に私はそれを使用するたびに行うことを覚えていることができます.他のインスタンスについては、ドキュメントは常に相談のためにご利用いただけます!

ユニプロプスとユニカー


私は、Unicodeを認識するソフトウェアを書くようにしていますLetter 単に探しているよりむしろ特性a-z and A-Z . 私はこの努力を助けるために、私はUnicode::Tussle CPAN配布uniprops and unichars .
使うuniprops , 文字またはコードポイントを与えることができ、文字が示すUnicodeプロパティのすべてについて説明します.例えば、
    $ uniprops а
    U+0430 ‹а› \N{CYRILLIC SMALL LETTER A}
        \w \pL \p{LC} \p{L_} \p{L&} \p{Ll}
        All Alnum X_POSIX_Alnum Alpha X_POSIX_Alpha Alphabetic Any Assigned
           InCyrillic Cyrillic Is_Cyrillic ID_Continue Is_IDC Cased Cased_Letter LC
           Changes_When_Casemapped CWCM Changes_When_Titlecased CWT
           Changes_When_Uppercased CWU Cyrl Ll L Gr_Base Grapheme_Base Graph
           X_POSIX_Graph GrBase IDC ID_Start IDS Letter L_ Lowercase_Letter Lower
           X_POSIX_Lower Lowercase Print X_POSIX_Print Unicode Word X_POSIX_Word
           XID_Continue XIDC XID_Start XIDS
unichars 逆問題からのアプローチ文字がどのプロパティを持っているかを伝える代わりに、Unicode文字が特定のプロパティを持つリストを指定します.
    $ unichars '\p{Cyrillic}
     Ѐ  U+0400 CYRILLIC CAPITAL LETTER IE WITH GRAVE
     Ё  U+0401 CYRILLIC CAPITAL LETTER IO
     Ђ  U+0402 CYRILLIC CAPITAL LETTER DJE
     Ѓ  U+0403 CYRILLIC CAPITAL LETTER GJE
     Є  U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE
     Ѕ  U+0405 CYRILLIC CAPITAL LETTER DZE
     І  U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
     Ї  U+0407 CYRILLIC CAPITAL LETTER YI
     Ј  U+0408 CYRILLIC CAPITAL LETTER JE
     Љ  U+0409 CYRILLIC CAPITAL LETTER LJE

組み合わせ


コマンドラインでテキスト処理をしたなら、あなたがよく知っている良いチャンスがありますcomm(1) . それはあなたがそれらのファイルの行で実行するために異なるセット操作を示すオプションスイッチと共に2つのテキストファイルを与えるプログラムです.例えば、comm -13 A B は、comm -12 A B 私の例から、あなたはどのように難しいの良いアイデアを得るcomm 使用することができます私は常にmanページに相談するか、座って、私が必要とする結果を得るために必要とする呼び出しを考える必要があります.失望して、私はインターネットに叫びました:

〔大〕

comm ( 1 )はあなたが望むものを指定するという奇妙な方法を持っていますが、とても便利です
午後16時37分- 2015年12月30日
1
0
幸いにも、仲間のプログラマーは私の嘆願を聞いた.

ウラジミールナウモフ
@ vnaum

あなたが線のセットを比較したいならば、結合(1)はより簡単です.apt get installモジュールをインストールする
午後17時02分- 2015年12月30日
1
0
あの運命の日以来ずっと使われていないcomm 一度.combine まさに私が必要として、そう簡単に構文を使用します.上記からの私の例combine B not A and combine A and B , それぞれ.

発見ツール

combine は、多くのプラットフォームで利用可能なMoreutilsパッケージの一部です私は、あなたが持っている問題を解決する何か他のものを見つけるかどうかを確認するためにパッケージ内の他のツールを見てお勧めします、またはまだ良い、あなたが知っていなかった問題!
If jq 他の種類の構造化データを扱うには、このリポジトリをGitHub上で見つけることができます.
https://github.com/dbohdan/structured-text-tools
あなたはあなたがあなたの人生をはるかに簡単に感じる専門のツールがありますか?もしそうならば、知らせてください!