Только ошибка
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) }
Исходники вашего программного обеспечения в /etc/apt/sources.list
выглядят нормально, но для экономии времени вы можете использовать apt для ручной загрузки хрони, а затем установить ее. Откройте терминал и введите:
apt download chrony
sudo apt install./chrony_3.2-4ubuntu4.4_amd64.deb
Если это не сработает, попробуйте установить хрони с помощью этих команд:
wget -c http://mirrors.kernel.org/ubuntu/pool/main/c/chrony/chrony_3.2-4ubuntu4_amd64.deb
sudo apt install./chrony_3.2-4ubuntu4_amd64.deb
Недавно мне тоже пришлось разбираться с этой странной ошибкой. В вашем случае все может быть по-другому, но мы столкнулись с проблемой, когда некоторые пакеты невозможно было установить, пока cloud-init
не завершит подготовку. Этот код HCL2 должен помочь, если вы запустите его перед установкой пакетов :
# Waiting for cloud-init --------------
provisioner "shell" {
inline = [
"/usr/bin/cloud-init status --wait"
]
}