Как ни странно, переустановка полного драйвера исправила это. (Я много раз пытался переустановить часть модуля ядра)
Чтобы исправить это, запустите это (при условии, что вы используете диспетчер пакетов DNF):
dnf remove xorg-x11-drv-nvidia xorg-x11-drv-nvidia-libs akmod-nvidia kmod-nvidia* && dnf install akmod-nvidia kmod-nvidia
Я отследил причину проблемы до регенерации файла конфигурации UEFI grub и перезапуска .
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Я пытался применить тему grub (по какой-то причине не удалось); любые дополнительные попытки сделать это (с изменениями в / etc / default / grub или без них) вызовут повторение проблемы. Проблема воспроизводима, вот что я сделал с / etc / default / grub:
echo "GRUB_THEME=\"/boot/grub2/themes/system/theme.txt\"" >> /etc/default/grub
Затем регенерировал файл конфигурации (используя ранее упомянутую команду mkconfig) и перезагрузился. Я не уверен, нужна ли добавленная мной строка GRUB_THEME для возникновения этой ошибки, кажется, что она игнорируется, и, кроме того, после перезагрузки новая строка добавляется в / etc / default / grub (GRUB_GFXPAYLOAD_LINUX = text)
Я сообщу об этом как об ошибке.
AWK может делать это с помощью диапазонов шаблонов, что позволяет использовать любое регулярное выражение:
echoer | awk '/pattern/,0'
напечатает вывод echoer
, начиная с первой строки, соответствующей pattern
.
AWK основан на шаблоне -и обычно используется с подходом типа «если этот шаблон соответствует, сделайте это». «Этот шаблон» может быть рядом шаблонов, определяемых как «когда этот шаблон совпадет, начните делать это, пока этот другой шаблон не совпадет»; это указывается путем написания двух шаблонов, разделенных запятой, как указано выше. Шаблоны могут быть текстовыми совпадениями, как в /pattern/
, где текущая строка сравнивается с шаблоном, интерпретируемым как регулярное выражение; они также могут быть общими выражениями, оцениваемыми для каждой строки и считающимися соответствующими, если их результат не равен -нулю или не -пуст.
В AWK,действием по умолчанию является печать текущей строки.
Собрав все это воедино, awk '/pattern/,0'
ищет строки, соответствующие pattern
, и, найдя одну, применяет действие по умолчанию ко всем строкам до тех пор, пока 0
условие не соответствует (не -нулю ). awk '/pattern/,""'
тоже подойдет.
В руководстве по Gawk содержится гораздо больше подробностей.
Обязательный sed
эквивалент @StephenKitt awk
:
sed '/pattern/,$!d'
pattern
интерпретируется как основное регулярное выражение , как в grep
(, в отличие от расширенного регулярного выражения в awk
/ egrep
/grep -E
). Некоторые sed
реализации имеют-E
(BSD, ast, недавний GNU/busybox, скоро POSIX )или-r
(GNU, ssed, busybox, некоторые недавние BSD )опцию, чтобы сделать его расширенными регулярными выражениями вместо этого, а некоторые имеют-P
(ast )или-R
(ssed ), чтобы сделать его perl -подобным регулярному выражению.
Сperl
:
perl -ne 'print if /pattern/.. undef'
с GNU и *BSD grep:
grep -A1000000000 pattern file
Если в вашем файле не более 1 млн строк, все.
Если вы используете пейджер, такой как less
, для просмотра вывода команды
less +pattern
Немного неуклюже, но работает.
#!/bin/bash
found=false
while IFS= read -r; do
if $found || [[ $REPLY =~ pattern ]]; then
found=true
printf '%s\n' "$REPLY"
fi
done
Эта версия основана на cat
, но ее легче понять.
#!/bin/bash
while IFS= read -r; do
if [[ $REPLY =~ pattern ]]; then
printf '%s\n' "$REPLY"
break
fi
done
cat
awk
для строк после (, но не включая )первое совпадение с шаблоном Если строка, содержащая триггерный шаблон, эквивалентна «CUT HERE», вы можете опустить ее в распечатке:
echoer | awk 'flag ; /pattern/ { flag=1 }'
Каждая строка ввода проходит через два компонента кода awk. Первый компонент — flag
, который awk интерпретирует как «вывести строку, если переменная flag
не равна нулю». Поскольку переменные awk по умолчанию равны 0, изначально ничего не будет напечатано.
Второй компонент, /pattern/ { flag=1 }
, устанавливает флаг в 1, как только обнаруживает шаблон, и флаг сохраняет это значение до конца выполнения.
К тому времени, когда шаблон впервые обнаружен, возможность напечатать эту строку ввода уже упущена. Любые последующие строки (, включая дополнительные строки, содержащие шаблон ), будут напечатаны.