Di Bash dan zsh (dan mungkin cangkang lain), Anda bisa menggunakan subtitusi proses ( Bash / zsh ) untuk membuat file dengan cepat, dan kemudian menggunakannya sebagai input untuk proses selanjutnya dalam rantai pipa.
Sebagai contoh, saya mencoba mengurai output JSON dari cURL menggunakan jq
dan less
, tetapi mendapatkan Failed writing body
kesalahan.
# Note: this does NOT work
curl https://gitlab.com/api/v4/projects/ | jq | less
Ketika saya menulis ulang menggunakan proses substitusi, itu berhasil!
# this works!
jq "" <(curl https://gitlab.com/api/v4/projects/) | less
Catatan: jq
menggunakan argumen ke-2 untuk menentukan file input
Bonus: Jika Anda menggunakan jq
seperti saya dan ingin menjaga output berwarna di less
, gunakan baris perintah berikut ini sebagai gantinya:
jq -C "" <(curl https://gitlab.com/api/v4/projects/) | less -r
(Terima kasih kepada Kowaru untuk penjelasan mereka tentang mengapa Failed writing body
itu terjadi. Namun, solusi mereka menggunakan tac
dua kali tidak bekerja untuk saya. Saya juga ingin menemukan solusi yang dapat meningkatkan skala untuk file besar dan mencoba untuk menghindari masalah lain yang dicatat sebagai komentar untuk jawaban itu.)