Это потому, что вы вводите свой массив x
в $1
, который является одним и тем же chr1
для всех строк в первом файле. Таким образом, в каждой строке содержимое массива индексируется на основе одного и того же ключа и перезаписывается значением в $2
. Итак, к концу файла у вас есть одна запись в массивеx['chr1']=744200
Вам нужно сохранить строку уникально. Сохраните ключ как кортеж $1 FS $2
и измените свою логику на
awk 'NR == FNR { x[$1 FS $2] = $2; next }{
for (key in x) {
split(key, arr)
if (arr[2] > $2 && arr[2] < $3)
print arr[2], $0
else {
print arr[2], "out of range"
}
}
}' file1 file2
Чтобы улучшить логику выполнения проверки диапазона только в строках, где первый столбец одинаков для обоих файлов, добавьте условие в if
как
if ( (arr[2] > $2 && arr[2] < $3) && ( $1 == arr[1] ) )
Если вы используете динамическое -восстановление, это известная проблема в containerd shim v2, и ее исправление все еще находится на рассмотрении.
Обходной путь:
Используйте прокладку v1 вместо v2
Либо укажите время выполнения для конкретного контейнера
docker run --runtime=io.containerd.runtime.v1.linux...`
Или установите общесистемную -среду выполнения по умолчанию
# cat /etc/docker/daemon.json
{
"default-runtime": "io.containerd.runtime.v1.linux",
"live-restore": true
}
ВНИМАНИЕ:Среда выполнения v1 устарела и будет удалена в следующем выпуске Docker.
Используйте службу systemd для уничтожения контейнеров перед перезагрузкой/выключением
# /etc/systemd/system/containerd-shim-v2-workaround.service
[Unit]
Description=containerd-shim v2 workaround
Before=docker.service
Requires=containerd.service
After=containerd.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStop=-/bin/sh -c '[ "$(systemctl is-system-running)" = "stopping" ] || exit 0; ctr -n moby tasks ls -q | xargs -r -L1 ctr -n moby tasks kill; ctr -n moby containers ls -q | xargs -r ctr -n moby containers rm'
[Install]
WantedBy=containerd.service
Я разместил это в ветке проблемы moby. Но это может не подходить для каждого варианта использования. Используйте с осторожностью.