Транспонируйте ваши данные и шаблон, и задача станет проще, например.:
# Determine offset to pattern
offset=$(cut -d' ' -f1 infile | paste -s | grep -ob "$(paste -s patternfile)" | cut -d: -f1)
# Adjust for field length
reslength=3
(( offset = offset % reslength + 1 ))
# Extract desired number
awk -v offset=$offset 'NR==offset { print $2 }' infile
Выход:
253
Обратите внимание, что это решение предполагает наличие только одного совпадения.
Сбой(Приводит к пустому экрану):
qemu-system-aarch64 \
-machine virt \
-serial stdio \
-bios u-boot.bin
Успех(Загрузчик работает):
qemu-system-aarch64 \
-machine virt \
-serial stdio \
-cpu cortex-a53 \
-bios u-boot.bin
Решение:
Для разных архитектур между хостом и гостем добавьте флаг ЦП, чтобы QEMU не использовал по умолчанию виртуализацию ЦП хоста:
-cpu cortex-a53
На идентичном оборудовании хоста для эмуляции этот флаг не нужен (не нужен на x86 -64 эмуляции/оборудовании? ), но в моем случае это так. Добавление этого параметра в QEMU, эмулирующее AArch64 на реальном оборудовании AArch64, позволило запустить загрузчик и показать вывод на консоль :
.~$ qemu-system-aarch64 -machine virt -serial stdio -cpu cortex-a53 -bios u-boot.bin
U-Boot 2021.01-rc1-g896cc5aa (Nov 06 2020 - 23:33:35 -0800)
DRAM: 128 MiB
Flash: 128 MiB
*** Warning - bad CRC, using default environment
In: pl011@9000000
Out: pl011@9000000
Err: pl011@9000000
Net: No ethernet found.
Hit any key to stop autoboot: 0
starting USB...
No working controllers found
USB is stopped. Please issue 'usb start' first.
scanning bus for devices...
...
Работаетqemu-system-aarch64 -cpu help
:
Available CPUs:
arm1026
arm1136
arm1136-r2
arm1176
arm11mpcore
arm926
arm946
cortex-a15
cortex-a53
cortex-a57
cortex-a7
cortex-a8
cortex-a9
cortex-m3
cortex-m4
cortex-r5
pxa250
pxa255
pxa260
pxa261
pxa262
pxa270-a0
pxa270-a1
pxa270
pxa270-b0
pxa270-b1
pxa270-c0
pxa270-c5
sa1100
sa1110
ti925t
host (only available in KVM mode)