почему мой сценарий удара только производит одну строку при повторении awk переменная

Любой может, вероятно, сказать, что я являюсь новым в сценариях и попытался делать столько же homewaork прежде, чем отправить здесь. Я имею то, что я думаю, простой сценарий, анализирующий файл зоны DNS для IP и уникальных доменных имен. У меня есть результаты, которые я хочу с awk outout, хотя я испытываю затруднения при помещении этого всего в сценарий для вывода ожидаемого форматированного файла для входа в другую систему. вывод печатает только одну строку на поиск.

#/bin/bash
addresses=($(grep '<uniquefield>' <filename> | awk -F'[ .]' '{print $5 "." $4 "." $3 "." $2"/"$1}'))
domains=($(grep -v '<uniquefield>' <filename> | awk '<uniquefield> {print $1}'|awk -F'.' 'sub(FS $(NF-4) FS $(NF-3) FS $(NF-2) FS $(NF-1) FS $NF,"")'))

echo ${addresses[1]}
echo ${domains[2]}

for i in "${addresses[@]}"
do
    :
    echo $addresses, disable, , , >import.csv
done
for i in "${domains[@]}"
do
    :
    echo $domains, disable, , , >>import.csv
done
1
задан 9 October 2014 в 20:38

1 ответ

Вы не используете $i переменная в цикле

for i in "${addresses[@]}"; do
# ..^
    echo $addresses, disable, , , >import.csv
# .......^^^ should be: echo $i, ...
done

Для переменной типа массив при печати переменной, не определяя индекс удар, кажется, дает Вам просто первый элемент.

$ x=( one two three )
$ echo $x
one
3
ответ дан 10 November 2019 в 19:21

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

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