По умолчанию (AFAIK )драйвер соединения использует только мониторинг mii для проверки доступности интерфейса, т. е. присутствия оператора связи.
Однако вы можете захотеть использовать мониторинг ARP , в конечном итоге только для некоторых конкретных целей (, например, вашего основного маршрутизатора )для проверки входящих пакетов arp .
Этот процесс описан в документации по связыванию Linux.
По сути, вы можете контролировать цель (до 16 всего )таким образом:
echo +192.168.1.1 > /sys/class/net/bond0/bonding/arp_ip_target
Как правило, вам нужно установить правильное значение (не слишком длинное и не слишком короткое, чтобы проверить его в работе )для интервала мониторинга arp (в мс):
echo 100 > /sys/class/net/bond0/bonding/arp_interval
Это решение awk должно помочь:
awk 'NR==FNR{a[NR]=$0;next};1;tolower($1)=="animal"{print a[++i]}' file1 file2 > file3
NR == FNR {a [NR] = $ 0; next} накапливает данные file1 в массиве, переход к следующей строке ввода, чтобы предотвратить обработку file2 на этом этапе.
1 печатает каждую входную строку файла2.
tolower ($ 1) == "animal" {print a [++ i]} соответствует "animal" без учета регистра и выводит соответствующий элемент массива, предварительно увеличивая индекс массива.
Sed
Просто добавьте .
после последней строки file_1
, чтобы сигнализировать о завершении файла_1 для sed
, поскольку sed
не имеет понятия FNR
из awk
, IOW, sed
разновидность POSIX
не имеет возможности узнать, когда заканчивается один файл и начинается следующий.
Основная идея состоит в том, чтобы сохранить имена животных в области хранения
, а затем, когда придет время читать в file_2
, мы захватим каждую часть , разделенную новой строкой. ] удерживайте
и прикрепите его к пространству шаблонов
и в то же время отсоедините
его от удержания
. Это упражнение attach <-> detach
выполняется только в строке, содержащей буквальную строку animal
без учета регистра.
sed -e '
1{
:file1
N
/\n\.$/!bfile1
s///;h;d
}
/^[aA][nN][iI][mM][aA][lL]/!b
G
s/\n/&&/2;ta
b
:a
h;s/.*\n\n//;x
s/\n\n.*//
' file_1 file_2
С GNU sed:
$ sed '/^animal/IR File1' File2
...
Animal Name
This Dog
...
AniMal Type
This Cat
...
AnIMal Class
This Duck
...
animal Brand
This Horse
...
, где расширения GNU следующие:
Модификатор I для сопоставления регулярных выражений - это расширение GNU, которое заставляет сопоставлять регулярное выражение без учета регистра.
и
R filename
Поставить в очередь строку с именем файла для чтения и вставки в выходной поток в конце текущего цикла или при чтении следующей входной строки. Обратите внимание, что если имя файла не может быть прочитано или если его конец достигнут, никакая строка не добавляется без какой-либо индикации ошибки.