我正在编写一个bash脚本,它一度使用nslookup
来解析循环中的某些名称。它的输出看起来像这样:
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
Name: example.org
Address: 93.184.216.34
我想删除前三行,而不必先将输出写入文件。我尝试使用tail
,但无法从STDIN中读取它。
nslookup "${name}" \
| tail +2 -
这会尝试将+2
读作文件:tail: cannot open ‘+2’ for reading: No such file or directory
如何管道nslookup的输出以删除前三行,以便稍后将所有行写入文件,如下所示:
while read name; do
nslookup "${name}" \
| remove-three-lines \
>> file.out
done <"${nameFile}"
答案 0 :(得分:3)
从第4行开始输出(忽略前3行):
nslookup "${name}" | tail -n +4
或者awk:
nslookup "${name}" | awk 'NR>3'
或sed:
nslookup "${name}" | sed '1,3d'
答案 1 :(得分:0)
这个怎么样:
while read name; do
echo $(nslookup "${name}" | tail -2) >> file.out
done <"${nameFile}"