Вы можете сделать все это в операторе BEGIN
, используяgetline
awk '
BEGIN {
while(1) {
line = sep = ""
for (i = 1; i < ARGC; i++) {
if ((getline < ARGV[i]) <= 0) exit
line = line sep $2
sep = OFS
}
print line
}
}' input{1..n} > out
Ответственность за это лежит на «операционной системе». То, как это реализовано, варьируется.
Необходимо рассмотреть два случая:
Если единственным источником времени в системе является RTC, то нет необходимости обновлять его, за исключением случаев, когда установлено время. В Linux это обычно обрабатывается либо hwclock
, либо timedatectl
.
Если в системе есть внешний источник времени (по сети ), необходимо обновить RTC. В Linux это раньше обрабатывалось при выключении (с помощью hwclock
), но ядро (начиная с 3.7 )может обновлять RTC автоматически каждые одиннадцать минут , если системное время поддерживается с помощью внешний источник, и RTC настроен соответствующим образом.
В Linux ядро ожидает, что службы синхронизации времени сообщат, синхронизировано ли время; это делается путем очистки или установки бита состояния STA_UNSYNC
с помощью системного вызова adjtimex
. Само ядро может установить этот бит, если оно определяет, что время не синхронизировано , но оно никогда не очищает его самостоятельно.