Вопрос с переменной переменной Awk

Это код, который я написал для разрешения DNS и вывода в файл. Есть ли способ полностью отказаться от цикла while и просто написать в awk? Он работает отлично, но он кажется очень громоздким и неэффективным, занимает около 10 минут для 25-килограммовых IP-адресов. Будем рады описать сценарий, если нужна ясность.

#!/bin/bash

while read line; do
  echo -en " ${startCount} / ${endCount} IPs resolved\r"
  ip=$(echo ${line} | cut -d "," -f1)
  col2=$(nslookup ${ip} | fgrep "name" | sed -e 's/\t/,/g' -e 's/name = //g' -e 's/.uncc.edu.//g' | cut -d "," -f2)
  if [[ ! -z ${col2} ]]; then
    echo "${line}" | awk -F"," -v var="${col2}" '{print $1","var","$2","$3","$4","$5","$6}' >> ${outFile}
  else
    echo "${line}" | awk -F"," '{print $1",""UNRESOLVED"","$2","$3","$4","$5","$6}' >> ${outFile}
  fi
  ((startCount++))
done < ${1}
1
задан 12 February 2015 в 18:56

0 ответов

Другие вопросы по тегам:

Похожие вопросы: