Ada beberapa perintah yang memfilter atau bertindak pada input, dan kemudian meneruskannya sebagai output, saya pikir biasanya untuk stdout
- tetapi beberapa perintah hanya akan mengambil stdin
dan melakukan apa pun yang mereka lakukan dengannya, dan tidak menghasilkan apa-apa.
Saya paling akrab dengan OS X dan jadi ada dua yang langsung terlintas di benak saya pbcopy
dan pbpaste
- yang merupakan cara mengakses clipboard sistem.
Bagaimanapun, saya tahu bahwa jika saya ingin mengambil stdout dan meludahkan output untuk pergi ke keduanya stdout
dan file maka saya bisa menggunakan tee
perintah. Dan saya tahu sedikit tentang itu xargs
, tetapi saya tidak berpikir itu yang saya cari.
Saya ingin tahu bagaimana saya dapat membagi stdout
untuk pergi antara dua (atau lebih) perintah. Sebagai contoh:
cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors
Mungkin ada contoh yang lebih baik daripada yang itu, tapi saya benar-benar tertarik mengetahui bagaimana saya bisa mengirim stdout ke perintah yang tidak menyampaikannya dan tetap menjaga agar stdout
tidak "diredam" - Saya tidak bertanya tentang cara cat
menyimpan file dan grep
bagian dari itu dan salin ke clipboard - perintah spesifik tidak begitu penting.
Juga - saya tidak bertanya bagaimana mengirim ini ke file dan stdout
- ini mungkin pertanyaan "duplikat" (maaf) tapi saya melihat beberapa dan hanya bisa menemukan yang serupa yang bertanya tentang bagaimana membagi antara stdout dan file - dan jawaban atas pertanyaan-pertanyaan itu tampaknya tee
, yang saya pikir tidak akan berhasil untuk saya.
Akhirnya, Anda mungkin bertanya "mengapa tidak membuat pbcopy hal terakhir dalam rantai pipa?" dan tanggapan saya adalah 1) bagaimana jika saya ingin menggunakannya dan masih melihat output di konsol? 2) bagaimana jika saya ingin menggunakan dua perintah yang tidak keluar stdout
setelah mereka memproses input?
Oh, dan satu hal lagi - saya sadar saya bisa menggunakan tee
dan bernama pipe ( mkfifo
) tapi saya berharap cara ini bisa dilakukan secara inline, secara ringkas, tanpa pengaturan sebelumnya :)