从文件中读取列并使用值运行命令

时间:2015-01-13 14:05:10

标签: linux bash awk grep

我有这样的文本文件:

313 "88.68.245.12"
189 "87.245.108.11"
173 "84.134.230.11"
171 "87.143.88.4"
158 "77.64.132.10"
....

我想grep只显示前10行中的IP,在IP地址上运行whois,然后从该输出我想要grep所在的行{{1} }}

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

使用while - read

循环浏览文件
while IFS='"' read -r a ip c
do
    echo "ip: $ip"
    whois "$ip" | grep netname
done < <(head -10 file)

这是IFS='"',因此字段分隔符是双引号"。这样,双引号内的值将存储在$ip

然后,我们打印ip并执行whois | grep事。

最后,我们使用head -10 file提供循环,以便我们只读取前10行。