Rumah >pembangunan bahagian belakang >Tutorial Python >Penyelesaian Paip Teks Pyhon Ergonomik untuk Linux Shell dengan pypyp dan uv
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
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?
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.
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.
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!