Удалить grub без потери одной из ОС

grep -E '^${g_filPfix}-([0-9]{3})-([0-9]{8})-([0-9]{9})${g_fileExt}$'

Непосредственной проблемой здесь является то, что шаблон для grepзаключен в одинарные кавычки, поэтому оболочка не будет раскрывать переменные g_filPfixи g_fileExt. Замена кавычек двойными -кавычками исправит это. (и скобки в шаблоне не нужны.)

Подобный разбор вывода lsможет вызвать проблемы с именами файлов, содержащими пробелы или некоторые нечетные символы. В частности, имя файла с пробелом посередине будет восприниматься как два имени файла.

Если вам на самом деле не нужен такой строгий шаблон, вы можете просто обработать все файлы с данным префиксом и суффиксом:

for f in "$dir/$prefix"*"$suffix" ; do 
    somecmd "$f"
done

Если вам нужен строгий шаблон, некоторые оболочки (, такие как Bash, которые, вероятно, есть у вас в Linux ), могут выполнять сопоставление регулярных выражений без внешних инструментов. Таким образом, чтобы перебрать все файлы в каталоге и игнорировать файлы, не соответствующие шаблону:

for f in "$dir"/* ; do 
    [[ "$f" =~ "/$prefix"-[0-9]{3}-[0-9]{8}-[0-9]{9}"$suffix"$ ]] || continue
    somecmd "$f"
done
-3
16.09.2019, 23:52
1 ответ

BIOS не может выбрать ОС для загрузки; вы должны заменить GRUB другим менеджером загрузки, если у вас несколько операционных систем. Некоторые варианты:

0
28.01.2020, 05:19

Теги

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