awk не распознает поле как число

Надеюсь, ваши резервные копии в порядке.

В оболочке восстановления initramfs вы уже являетесь пользователем root, поэтому вам не нужно sudo. Проблема может заключаться в том, что количество инструментов, доступных в initramfs, обычно очень ограничено.

Возможно, вы захотите загрузить систему с внешнего загрузочного носителя. :Live USB/DVD/CD, вероятно, подойдет и обеспечит более приятную рабочую среду и полный набор инструментов для устранения неполадок.

Но если вам нужно попытаться исправить это с помощью среды initramfs, есть альтернативные источники информации:

  • cat /proc/partitionsдолжен дать вам представление о количестве и размерах разделов, обнаруженных на диске.
  • cat /etc/fstab, возможно, вместе с blkidи/или ls -l /dev/disk/by-uuidможет позволить вам определить, какой тип файловой системы должен быть на /dev/sda2.

Я бы рекомендовал использовать файловую систему -тип -специальный fsckинструмент (, то естьfsck.<filesystem type>)вместо общей команды,поскольку общая команда может неправильно идентифицировать тип файловой системы и в результате отображать это страшное сообщение о возможном повреждении диска.

Обратите внимание, что проблема на самом деле может заключаться в неправильном имени устройства для корневой файловой системы, особенно если аппаратная конфигурация системы недавно была изменена. Например, то, что изначально было /dev/sda2, теперь может быть /dev/sdb2.

В этом случае вы можете указать правильную корневую файловую систему, отредактировав параметры загрузки в меню загрузки GRUB. Как только система будет запущена, вам нужно будет обновить конфигурацию GRUB, чтобы она соответствовала текущему состоянию оборудования.

6
19.04.2021, 16:29
1 ответ

Проблема в том, что у вас LC_NUMERIC=fr_BE.UTF-8. В этом языковом стандарте десятичным разделителем является ,, а не ., поэтому 98.9не считается числом. Для иллюстрации:

$ echo "98.5" | LC_NUMERIC=C mawk '$1<100' 
98.5
$ echo "98.5" | LC_NUMERIC=fr_BE.UTF-8 mawk '$1<100' 
$ 

Так что либо измените свой язык на тот, который имеет .в качестве десятичного разделителя, либо явно установите язык для этой команды:

head q.filtered.noself.blastn | LC_NUMERIC=C awk '$3 <= 100'
12
28.04.2021, 22:52

Теги

Похожие вопросы