ホームページ >バックエンド開発 >Python チュートリアル >pypyp と uv を使用した Linux シェル用の人間工学に基づいた Pyhon テキスト パイピング ソリューション
この短いブログ投稿は、pypyp と uv を使用した Linux テキスト パイピング ソリューションについての紹介です。awk を学習しなくても、Python に関するすべての知識とパッケージを簡単に再利用できます。使い方ではなく、なぜそれを選んだのかを読者に伝えることに重点を置いています。使い方について詳しく知りたい場合は、pypyp のホームページと uv のホームページをご覧ください
Linux シェル スクリプトまたはコマンドを作成する場合、 awk 、 sed 、 grep はテキストを操作するための強力なツールです。 grep を使用すると、次のようなものを見つけることができます。 grep myname、sed を使用して何かを置き換え、より高度なケースに対処するためのチューリング完全なプログラミング言語として awk を使用します。
grepとsedは大丈夫です。彼らは一つのことをとても上手にやります。しかし、awkはそうではありません。ご存知のとおり、awk はテキスト用のプログラミング言語であり、その使用方法を学ぶには grep や sed と比べて時間がかかります。それが問題です。awk は優れたテキスト処理ツールですが、優れたプログラミング言語
ではありません。
Python、Ruby、Perl と比較すると、awk は汎用プログラミング言語ではないため、awk の使用率の 99% は Linux シェルでのテキストの処理のみであり、その利便性は、新しいプログラミングを学習するための時間と認知的負荷の価値がありません。特にシェル スクリプトを専攻していない場合は、この言語をよく学びます。
人生は短いのに、すでに学んだプログラミング言語を使用できるのに、なぜ別のプログラミング言語を学ぶ必要があるのでしょうか?
pypyp が解決策です。これは、Python に関するすべての知識があれば、 awk 、 sed 、 grep を 1 つのコマンド pyp に置き換えるのに役立つ、単純な (コードが 800 行未満の) Python スクリプトです。以下に簡単な例を示します。
uname | pyp 'x.lower()' ls | uvx pypyp 're.match(r"\S+.c",x)' # use python regex
pypyp は、python -c に関する多くの単純だが重要な問題を解決します。標準入力を line 変数に読み取り、行を x 変数に分割し、最後の式を自動的に出力します。その一方で、Python を Perl や awk と同じくらい Linux シェルのテキスト処理言語として使いやすくするために、いくつかのコマンド パッケージをインポートします。
uv は、Python のカーゴまたは npm のようなものです。 pypyp を uvx (npx や pipx のように動作) で使用するのは非常に簡単で、特に pypyp 用のサードパーティ パッケージが必要です。たとえば、pypyp で numpy を使用したい場合は、単純に uvx --with numpy を使用して numpy パッケージを追加し、pyp を使用してそれを自動的にインポートします。
uvx --with numpy pypyp 'numpy.random.randint(100)'
uv を使用すると、pypyp のインストールも簡単になります。 uv がインストールされたら、uvx pypyp を直接実行できます。uvx がダウンロードして実行します。
uvx pypyp は awk の良い代替手段であることがわかりました。負担を増やすことなく、Python に関するすべての知識を再利用できます。ただし、現時点ではこれが一般的なソリューションではないことにも注意する必要があり、互換性を保つためにコマンドやスクリプトを他のユーザーと共有しない方がよいでしょう。
以上がpypyp と uv を使用した Linux シェル用の人間工学に基づいた Pyhon テキスト パイピング ソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。