8
ฉันจะส่ง stdout ไปยังหลายคำสั่งได้อย่างไร
มีคำสั่งบางตัวที่กรองหรือดำเนินการกับอินพุตจากนั้นส่งผ่านไปตามเอาต์พุตฉันคิดว่าปกติแล้วstdout- แต่คำสั่งบางอย่างจะใช้stdinและทำสิ่งที่พวกเขาทำกับมัน ฉันคุ้นเคยกับ OS X มากที่สุดและมีอยู่สองอย่างที่นึกขึ้นมาทันทีpbcopyและpbpaste- ซึ่งหมายถึงการเข้าถึงคลิปบอร์ดของระบบ อย่างไรก็ตามฉันรู้ว่าถ้าฉันต้องการ stdout และคายเอาท์พุทเพื่อไปที่ทั้งสองstdoutและไฟล์จากนั้นฉันสามารถใช้teeคำสั่ง และฉันรู้เรื่องเล็กน้อยxargsแต่ฉันไม่คิดว่านั่นคือสิ่งที่ฉันกำลังมองหา ฉันต้องการทราบว่าฉันสามารถแยกstdoutคำสั่งระหว่างสองคำสั่ง (หรือมากกว่า) ได้อย่างไร ตัวอย่างเช่น: cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors อาจมีตัวอย่างที่ดีกว่าตัวอย่างนั้น แต่ฉันสนใจที่จะรู้ว่าฉันสามารถส่ง stdout ไปยังคำสั่งที่ไม่ส่งสัญญาณได้อย่างไรและในขณะที่ไม่stdoutถูก "ปิดเสียง" - ฉันไม่ได้ถามเกี่ยวกับcatไฟล์และgrepส่วนหนึ่งของมันและคัดลอกไปยังคลิปบอร์ด - คำสั่งเฉพาะนั้นไม่สำคัญ นอกจากนี้ - ฉันไม่ได้ถามว่าจะส่งไฟล์นี้ไปยังไฟล์ได้อย่างไรstdout- อาจเป็นคำถามที่ "ซ้ำกัน" (ขออภัย) แต่ฉันได้ลองดูแล้วจะพบคนที่คล้ายกันที่ถามถึงวิธีการแยกระหว่าง stdout และไฟล์ - และคำตอบสำหรับคำถามเหล่านั้นดูเหมือนจะเป็นteeซึ่งฉันไม่คิดว่าจะทำงานให้ฉันได้ สุดท้ายคุณอาจถามว่า "ทำไมไม่ทำให้ pbcopy เป็นสิ่งสุดท้ายในห่วงโซ่ท่อ" และการตอบสนองของฉันคือ …