我想过滤输出

问题描述 投票:-2回答:1

我创建了以下脚本

echo -n "Input your target"
read target;

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

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

string bash shell
1个回答
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...]

How it works

  1. tee -a whois.txt 这会将whois的输出发送到文件whois.txt,也发送到stdout。 -a告诉tee附加到文件而不是覆盖它。
  2. grep -i domain 这接受来自tee的输入,过滤它,并在屏幕上显示结果。
© www.soinside.com 2019 - 2024. All rights reserved.