两条命令,一条管道

两条命令,一条管道

我需要这两个命令(这样我就可以进一步通过管道传输它们):

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

但我只能获得不同命令的输出[上面提到的,2个不同的域]。 [只是想编写一个“DNS 检查器”脚本来在域的 DNS 记录发生更改时警告我]

答案1

通用的解决方案如下:

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

答案2

您可以将多个名称传递给dig

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

答案3

有两种方法可以在不使用 grep 的情况下准确获得该输出:

关闭您不需要的部分:

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

关闭所有部分,然后打开您需要的部分:

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

另外,似乎输出每次都会给出不同的additional(或“ ”)部分,因此如果您只是想检查区域文件的更改,您可能需要使用。glue+noadditional

相关内容