如何通过每行上具有不同数量的参数的文本文件来运行命令

时间:2017-06-16 18:39:32

标签: shell unix sh

我有一个类似下面的文本文件(更长)。我尝试使用host命令对每个IP地址进行查找。你知道我怎么能按照文本文件的顺序(整个第一行,然后第二行等)来做这个吗?

我尝试使用它,但它没有正确执行:

while read in; do host "$in"; done < inputfile.txt > outputfile.txt

输入文字文件:

10.10.999.200 10.11.223.334 10.55.555.555
10.12.238.222 10.52.212.212
10.12.238.222 10.14.217.232
10.23.212.212 10.19.301.305 10.12.345.678

2 个答案:

答案 0 :(得分:1)

将空格设置为换行符并将每个IP管道传输到xargs进行处理。

tr ' ' '\n' < inputfile.txt | xargs -IX host X > outputfile.txt

答案 1 :(得分:-1)

我会这样做:

cat file | while read line   
do   
    echo "$line"  
done   

这种方式可以逐行查看。但是,如果您的文件很大,则需要很长时间,因为每次在shell中读取文件时,都要编程打开,读取,关闭文件。在这种情况下,你必须使用AWK