Apakah ada keuntungan tambahan dari menjalankan file dan mem-pipe-nya untuk menerima, selain kenyamanan? Kemudahannya adalah, ketika saya mengambil perintah seperti yang di bawah ini dari histori saya, kursor berada di akhir baris, jadi mudah untuk memodifikasi perintah dengan teks yang berbeda untuk melawan file yang sama.
Jadi, apa kelebihan lain dari konvensi berikut ini:
cat /var/tmp/trace.2043925204.xt | grep -in profile
cat /var/tmp/trace.2043925204.xt | grep -n Profile-Main
dari pada:
grep -in profile /var/tmp/trace.2043925204.xt
grep -n Profile-Main /var/tmp/trace.2043925204.xt
cat
jauh lebih jelas untuk dibaca daripada<
. Atau mungkin hanya untuk kita para fogeys yang berpikir bahwa Unix dan bash dapat belajar banyak dari VMS dan DCL.Tidak ada keuntungan. Kursor Anda yang berada di bagian akhir juga tidak masalah jika Anda menyusunnya seperti ini:
< inputfile grep -args foo
sumber
Anda tidak perlu menggunakan kucing dalam situasi ini sama sekali. Itu tidak perlu dan buang-buang waktu, karena alat seperti grep mengambil nama file sebagai argumen.
Pembaruan: Terima kasih, @Andy Lester, karena telah menunjukkan bahwa pengaturan waktu ini tidak memperhitungkan cache disk. Saya belajar sesuatu yang baru! Tetapi penghematan sepersekian detik tidak membuat banyak perbedaan pula. Saya hanya berpikir piping kucing ke grep bukan cara logis untuk melakukan sesuatu. Ini seperti meminta orang lain untuk membantu Anda dengan masalah, ketika Anda benar-benar mampu menyelesaikannya sendiri.
sumber
Kemudahan mengedit adalah satu-satunya keuntungan nyata, dan jika Anda melakukannya di baris perintah, setiap waktu tambahan yang diperlukan untuk menjalankan
cat
dan melakukan pipa tidak akan benar-benar membuat perbedaan.Tidak ada alasan untuk melakukannya dalam skrip shell.
sumber
Tidak ada manfaat sama sekali. Alih-alih khawatir tentang memodifikasi perintah, belajar untuk menavigasi baris perintah shell Anda dengan lebih baik dengan kunci akselerator dan pintasan.
sumber
Tidak dan bahkan mungkin lebih lambat dalam contoh yang Anda berikan.
A
pipe
dibuat antara cat dan grep, yang tidak diperlukan saat memberikan nama file langsung ke grep. Namun saya tidak berpikir dalam keadaan apa pun apakah Anda akan mengamati batasan throughput karena ini.Keuntungan lain dari input perpipaan untuk grep termasuk pemrosesan tambahan sebelumnya, seperti penggunaan utilitas dengan kemampuan membaca file yang lebih maju. (Lihat
tee
,,zcat
antara lain).sumber