两个命令,一个管道


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

但我只能获得来自不同命令的输出(如上所述,2个不同的域)。[只想编写“ DNS检查器”脚本来在域的DNS记录更改时警告我]

Answers:


14

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

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

33

通用解决方案如下:

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

或者( command1; command2; ) | some-other-command
hlovdal

4
@hlovdal:是的,但是在这种情况下,您正在运行子外壳程序(有人希望知道),并且;不需要第二个。
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如果您只是想检查区域文件的更改,则可能要使用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.