如何从此输入中删除第二列?

如何从此输入中删除第二列?
INPUT
bix.hu.         42433   IN  A   193.239.149.1
bix.hu.         42433   IN  MX  10 deneb.iszt.hu.
bix.hu.         42433   IN  NS  ns.iszt.hu.
bix.hu.         42433   IN  NS  ns.iszt.hu.
bix.hu.         42433   IN  NS  ns-s.nic.hu.
bix.hu.         42433   IN  NS  ns-s.nic.hu.
bix.hu.         42433   IN  SOA ns.iszt.hu. hostmaster.iszt.hu. 2011053000 28800 7200 604800 14400

OUTPUT
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

使用 bash、sed、awk 等。如何?

实际上它只是以下的输出:

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

我只是不想要 TTL 列.. [因为我想对输出进行 sha256sum,这样我可以检查 DNS 设置是否被修改,但如果 TTL 不断减少,它会破坏 sha256sum] - 它将只是一个检查器脚本..

答案1

KISS 并使用该+nottlid选项?man dig

-----[ 16:44:51 ] (!4302) [ :-) ] janmoesen@janbookpro ~ 
$ dig -t any bix.hu | egrep -v "^;;|^;|^$" | sort
bix.hu.         43113   IN  A   193.239.149.1
bix.hu.         43113   IN  MX  10 deneb.iszt.hu.
bix.hu.         43113   IN  NS  ns-s.nic.hu.
bix.hu.         43113   IN  NS  ns.iszt.hu.
bix.hu.         43113   IN  SOA ns.iszt.hu. hostmaster.iszt.hu. 2011053000 28800 7200 604800 14400
-----[ 16:44:53 ] (!4303) [ :-) ] janmoesen@janbookpro ~ 
$ 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-s.nic.hu.
bix.hu.         IN  NS  ns.iszt.hu.
bix.hu.         IN  SOA ns.iszt.hu. hostmaster.iszt.hu. 2011053000 28800 7200 604800 14400

您确实应该查看文档。例如,您可以告诉 dig 仅打印相关信息,这样就不需要 grep 了。

答案2

cut(1)是你的朋友:

dig -t any bix.hu | egrep -v "^;;|^;|^$" | sort | cut -c1-16,22-

相关内容