Вы не хотите использовать циклы оболочки для обработки текста . Здесь это типичная работа дляawk
:
awk -F '"? *, *"?' '
!ports_processed {
port[++ports] = $0; width[ports] = length; next
}
FNR==1 {
printf " | interface Switch\nVLAN-ID | VLAN-NAME "
for (i = 1; i <= ports; i++) printf "|%s", port[i]
print ""
}
{
printf "%6d |%11s", $1, $2
split("", member)
for (i = 3; i <= NF; i++) member[$i]
for (i = 1; i <= ports; i++)
printf "| %*s", 1 - width[i], (port[i] in member ? "*" : " ")
print ""
}' file-1 ports_processed=1 file-2
(здесь предполагается, что имена vlan не содержат запятых или двойных -кавычек или новых строк (нам нужно знать, как они кодируются, если это может произойти))
Чтобы ответить на вопрос в теме, для оболочки с поддержкой многомерных массивов посмотрите ksh93
. Он также имеет средства синтаксического анализа и записи csv.
При использовании проводного контроллера убедитесь, что вы (или ваш DHCP-сервер, если вы используете DHCP ), настроили адрес DNS-сервера имен, который является доступным и функционирующим в качестве DNS-преобразователя.
Похоже, что конфигурация вашей проводной сети либо вообще не включает адрес DNS-сервера, либо настроенный DNS-сервер для проводной сети работает неправильно.
Вы должны поместить свой DNS-сервер -в файл '/etc/resolv.conf'.
Пример:
nameserver 8.8.8.8
После этого попробуйте пропинговать по имени.