我想过滤输出

时间:2017-12-19 19:33:46

标签: string bash shell

我创建了以下脚本

echo -n "Input your target"
read target;

echo "[*] Get Whois .."
whois $ target >> whois.txt

我想只将字符串“Domain”显示在whois.txt文件中的终端

1 个答案:

答案 0 :(得分:0)

要将所有输出发送到文件但只有一些输出发送到屏幕,请使用teegrep

$ target=google.com
$ whois "$target" | tee -a whois.txt | grep -i domain
   Domain Name: GOOGLE.COM
   Registry Domain ID: 2138514_DOMAIN_COM-VRSN
   Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
   Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
   [...snip...]

如何运作

  1. tee -a whois.txt

    这会将whois的输出发送到文件whois.txt,将输出到stdout。 -a告诉tee附加到文件而不是覆盖它。

  2. grep -i domain

    接受来自tee的输入,对其进行过滤,并在屏幕上显示结果。