Насколько я понимаю ограниченное , дерево устройств - это описание оборудования, предназначенное для (множества) систем ARM. Он все еще в некоторой степени меняется, и рабочая поддержка появилась совсем недавно. Я помню, что это началось в Linux 3.x, вероятно, 2.x уже нет. И ядро должно быть настроено с его помощью, новые (4.x) ядра зависят почти исключительно от него при настройке. Но такое ядро могло взорваться на старом оборудовании.
Только ошибка
FNR > 1 # skip header
{
что должно быть
FNR > 1 { # skip header
Блок кода с условием должен начинаться на той же строке, что и условие.
То, что ваш исходный скрипт на самом деле делает, является первым
FNR > 1
Печатаются все строки, начиная со второй строки. (Действие по умолчанию, когда условие не имеет связанного блока кода, заключается в печати текущей записи, если условие истинно, как если бы блок был{ print }
).
Затем он применяет блок, следующий за этим, к каждой строке (, поскольку этот блок не имеет связанного условия ).
Это не особенность GNU awk
. Все реализации awk
должны действовать так.
Что касается других частей сценария:
} else {
print > "/dev/null" # print nothing
}
Это можно было бы удалить, оставив
#!/usr/bin/awk -f
BEGIN { FS = "," }
FNR > 1 {
if ( $1 == $2 ) {
if ( NR == 4 )
printf("*** Print NR=4 ok.\n")
} else
printf("=== Fields 1 and 2 not equal (NR=%s).\n", NR)
}
или,
#!/usr/bin/awk -f
BEGIN { FS = "," }
FNR == 1 { next }
$1 == $2 && NR == 4 { printf("*** Print NR=4 ok.\n") }
$1 != $2 { printf("=== Fields 1 and 2 not equal (NR=%s).\n", NR) }