Rumah >pembangunan bahagian belakang >Tutorial Python >Penyelesaian Paip Teks Pyhon Ergonomik untuk Linux Shell dengan pypyp dan uv

Penyelesaian Paip Teks Pyhon Ergonomik untuk Linux Shell dengan pypyp dan uv

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-05 21:13:46937semak imbas

Ergonomic Pyhon Text Piping Solution for Linux Shell with pypyp and uv

Abstrak

Catatan blog pendek ini ialah pengenalan tentang penyelesaian paip teks linux dengan pypyp dan uv, ia boleh menggunakan semula semua pengetahuan dan pakej anda tentang python dengan mudah tanpa belajar awk. Kami memberi tumpuan kepada memberitahu pembaca mengapa memilihnya dan bukannya cara menggunakannya. Jika anda ingin mengetahui lebih lanjut tentang penggunaan, lawati halaman utama pypyp dan halaman utama uv

Mengapa saya tidak akan menggunakan awk?

Apabila menulis skrip atau arahan shell linux, awk , sed dan grep ialah alat yang berkuasa untuk bekerja dengan teks: Anda boleh menggunakan grep untuk mencari sesuatu seperti ls | grep myname, gunakan sed untuk menggantikan sesuatu dan gunakan awk sebagai bahasa pengaturcaraan yang lengkap untuk menangani kes yang lebih canggih.
grep dan sed baik-baik saja. Mereka melakukan satu perkara dan melakukannya dengan sangat baik. Tetapi awk tidak. Seperti yang kita ketahui, awk ialah bahasa pengaturcaraan untuk teks, dan memerlukan lebih banyak masa untuk mempelajari cara menggunakannya berbanding dengan grep dan sed. Itulah masalahnya, awk ialah alat pemprosesan teks yang baik tetapi bukan bahasa pengaturcaraan yang baik.
Berbanding dengan Python, Ruby dan Perl, awk bukanlah bahasa pengaturcaraan tujuan umum, jadi penggunaan 99% awk hanya memproses teks dalam shell linux, dan kemudahan itu tidak berbaloi dengan masa dan pemuatan kognitif anda untuk mempelajari pengaturcaraan baharu bahasa, terutamanya apabila anda tidak mengambil jurusan skrip shell.
Jadi, hidup ini singkat, mengapa belajar bahasa pengaturcaraan lain jika anda boleh menggunakan bahasa yang telah anda pelajari?

Mengapa saya memilih pypyp?

pypyp ialah penyelesaian. Ia adalah skrip python yang mudah (kurang daripada 800 baris kod) yang boleh membantu anda menggantikan awk , sed dan grep dengan satu perintah pyp, dengan semua pengetahuan anda tentang python. Berikut ialah contoh cepat.

uname | pyp 'x.lower()'
ls | uvx pypyp 're.match(r"\S+.c",x)'   # use python regex

pypyp menyelesaikan banyak masalah mudah tetapi penting tentang python -c, ia membaca stdin kepada baris pembolehubah dan garisan pecah kepada x pembolehubah, ia juga mencetak ungkapan terakhir secara automatik. Sementara itu, ia mengimport beberapa pakej koman untuk menjadikan python semudah digunakan sebagai bahasa pemprosesan teks untuk shell linux sebagai perl dan awk.

Mengapa saya juga menggunakan uv?

uv adalah seperti kargo atau npm untuk python. Menggunakan pypyp dengan uvx (berfungsi seperti npx atau pipx) adalah sangat mudah terutamanya pakej pihak ketiga yang anda perlukan untuk pypyp. Sebagai contoh, saya ingin menggunakan numpy dengan pypyp, saya hanya boleh menggunakan uvx --with numpy untuk menambah pakej numpy dan menggunakan pyp untuk mengimportnya secara automatik.

uvx --with numpy pypyp 'numpy.random.randint(100)'

uv juga memudahkan pemasangan pypyp. Setelah uv dipasang, anda boleh menjalankan uvx pypyp secara terus dan uvx akan memuat turun dan menjalankannya untuk anda.

Kesimpulan

Saya mendapati bahawa uvx pypyp adalah alternatif yang baik untuk awk, ia boleh menggunakan semula semua pengetahuan anda tentang python, tanpa menambah beban untuk anda. Tetapi kita juga harus menyedari bahawa ia bukan penyelesaian yang popular buat masa ini, dan lebih baik jangan berkongsi arahan atau skrip anda dengan orang lain untuk keserasian.

Atas ialah kandungan terperinci Penyelesaian Paip Teks Pyhon Ergonomik untuk Linux Shell dengan pypyp dan uv. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn