Ваш Docker запускает DHCP клиент на интерфейсе br0
, что заставляет его пытаться получить IP адрес для интерфейса. На это указывает IP-адрес 169.254.x.x
, который является IP-адресом автоконфигурации, используемым DHCP.
Вам необходимо проверить свои конфигурационные файлы, чтобы DHCP был отключен.
perl -F',\s+' -lane '
@ARGV and $h{$F[1]}=$F[0],next;
/^name:\s+(\S+)/ && exists $h{$a=$1} .. /^$/ || eof and do{
/^$/ || eof and $_ .= (/^$/ ? $, : $\) . ("id: " . $h{$a} // "") . (eof ? $, : $\);
};
print;
' table.csv students.dat
Perl
параметры
-F
Разделитель полей установлен на , \ s +
-l
Разделитель выходной записи установлен на \ n
-a
Режим автоматического разделения => массив @F
содержит поля $ 1, $ 2, ..., $ NF
-n
Печатать только при запросе + неявное чтение строк, a.la., awk
Логика
@ARGV и
=> когда входным файлом является .csv, otw .dat Perl
, condition1 .. condition2
является оператором триггера, a. la., ,
из sed
. Но он более универсален в том смысле, что мы можем добавить больше условий к входам ..
. В частности, в нашем случае / ^ name: \ s + (\ S +) / && $ h {$ a = $ 1}
составляет составной cond1
, который, когда строка начинается с имя: за которым следует несколько пробелов, затем фиксируется имя учащегося, и $ h {$ a = $ 1} проверяет, найдено ли это имя учащегося с ИСТИННЫМ значением. (N.B .: so => если бы ID был равен нулю, это отключило бы!). Оператор триггер
остается истинным после того, как этот шаг был выполнен, и мы продолжаем его до тех пор, пока не увидим пустую строку или не достигнем EOF
. На этом конкретном шаге мы заполняем текущую строку $ _
данными id из хэша.