สองคำสั่งหนึ่งไปป์ไลน์


11

ฉันต้องการคำสั่งสองคำสั่งนี้เพื่อเป็นหนึ่ง (ดังนั้นฉันสามารถไพพ์เพิ่มเติมได้):

dig +nottlid -t any bix.hu | egrep -v "^;;|^;|^$" | sort
dig +nottlid -t any www.bix.hu | egrep -v "^;;|^;|^$" | sort

ฉันหมายถึงฉันต้องการผลลัพธ์ของสองคำสั่งเหล่านี้ในหนึ่งท่อ:

$ dig +nottlid -t any bix.hu | egrep -v "^;;|^;|^$" | sort
bix.hu.         IN  A   193.239.149.1
bix.hu.         IN  MX  10 deneb.iszt.hu.
bix.hu.         IN  NS  ns.iszt.hu.
bix.hu.         IN  NS  ns.iszt.hu.
bix.hu.         IN  NS  ns-s.nic.hu.
bix.hu.         IN  NS  ns-s.nic.hu.
bix.hu.         IN  SOA ns.iszt.hu. hostmaster.iszt.hu. 2011053000 28800 7200 604800 14400

และ

dig +nottlid -t any www.bix.hu | egrep -v "^;;|^;|^$" | sort
bix.hu.         IN  NS  ns.iszt.hu.
bix.hu.         IN  NS  ns-s.nic.hu.
www.bix.hu.     IN  A   193.239.149.1

เพื่อให้ฉันสามารถsha256sumรวมเข้าด้วยกันโดยไม่ต้องเขียนเอาต์พุตของสองคำสั่งไปยังไฟล์เดียวและsha256sumไฟล์

ถาม: มันเป็นเช่นนี้:

echo hi | echo hi2 | sha256sum

แน่นอนว่ามันใช้งานไม่ได้ แต่มีวิธีแก้ไขปัญหานี้หรือไม่? ดังนั้นฉันต้องการ sha256sum ของ:

hi
hi2
-->>
697ec886148d94d5b094df14f301f2e5a4abd8098a0e0dc2afb0a97945cea677

แต่ฉันสามารถมีเอาต์พุตจากคำสั่งที่ต่างกันเท่านั้น [เพียงแค่ต้องการเขียนสคริปต์ "ตัวตรวจสอบ DNS" เพื่อเตือนฉันเมื่อ DNS บันทึกการเปลี่ยนแปลงสำหรับโดเมน]

คำตอบ:



33

โซลูชันทั่วไปมีดังต่อไปนี้:

{ command1; command2; } | some-other-command

( command1; command2; ) | some-other-commandหรือ
hlovdal

4
@hlovdal: ใช่ แต่ในกรณีเช่นนี้คุณกำลังเรียกใช้ subshell (มีคนต้องการทราบ) และ;ไม่จำเป็นต้องใช้ที่สอง
enzotib

0

มีสองวิธีในการรับเอาต์พุตนั้นโดยไม่ต้อง grepping:

ปิดส่วนที่คุณไม่ต้องการ:

dig +nottlid +nocomments +noquestion +nostats +nocmd -t any bix.hu

ปิดส่วนทั้งหมดแล้วเปิดส่วนที่คุณต้องการ:

dig +nottlid +noall +authority +answer +additional -t any bix.hu

นอกจากนี้ดูเหมือนว่าเอาต์พุตจะให้ส่วนที่แตกต่างกันadditional(หรือ " glue") ทุกครั้งดังนั้นคุณอาจต้องการใช้+noadditionalถ้าคุณแค่พยายามตรวจสอบการเปลี่ยนแปลงของไฟล์โซน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.