Почему я не должен выходить из класса символов в sed, но я должен выйти из остальных?

Идеально, как nikhil говорит, "необходимо только установить личинку, после того как" затем "вручную добавляют записи для каждого нового дистрибутива, что Вы устанавливаете", или еще более идеально, имеете новую подсказку установок для местоположения Ваших файлов личинки и добавляете их собственную запись; я думаю, что некоторые дистрибутивы могут сделать это.

К сожалению, это не всегда настолько просто, особенно если Вы бездельничаете с попыткой новых дистрибутивов, Вы незнакомы с, и т.д. и т.д., и после того как Ваш MBR перезаписывается, необходимо иметь дело с утомительной задачей переустановки старой личинки. MBR является физическим килобайтом первой половины диска (иначе. загрузочный сектор), загруженный и выполняемый BIOS ПК (читает больше), и это - то, где личинка запускается, но это затем загружает больше материала из раздела (например, материал, в котором Вы могли бы найти /boot/grub2/i386-pc).

Так, вот быстрый взлом/ярлык к тому, чтобы заниматься целой проблемой: прежде чем Вы установите дистрибутив, скопируете Ваш MBR. Позвольте установщику сделать то, что он хочет без любой суеты, затем позже, 1) откладываете свою копию MBR на загрузочный сектор, 2) добавляете запись в соответствующее меню личинки.

Шаг № 1 довольно прост, и является на самом деле хорошей идеей каждый раз, когда Вы делаете установку в случае, если что-то завинчено, и Вы просто хотите возвратиться туда, где Вы запустили. Остерегайтесь это не относится к отформатированным дискам нового Windows UEFI/GPT. Загрузочный сектор, содержащий MBR, - точно 512 байтов:

dd if=/dev/sda of=mbr.copy bs=512 count=1

"/dev/sda" должен быть физическим диском, MBR идет. Заметьте, что это не "/dev/sda1", который относится к первому разделу на/dev/sda.

Сделайте свою установку и начальную загрузку в новую систему. Можно затем смонтировать, куда когда-либо Вы помещаете свое резервное копирование MBR, и:

dd if=mbr.copy of=/dev/sda bs=512 count=1

Престо! Перезагрузка, и это похоже на ту новую установку, никогда не происходил. Это находится все еще там в его разделе, однако, и всем, что необходимо сделать, шаг № 2, добавляет запись меню личинки для него к старому меню личинки.

Шаг 2 является более твердым битом, потому что он требует, чтобы Вы тщательно исследовали /boot/grub2/grub.cfg на обоих разделах и решают, как добавить новую запись. Во-первых, сделайте резервную копию grub.cfg, как. Необходимо смочь просто сократить n', вставляют записи прямо, но остерегаются, если они ссылаются на некоторую функцию, которая определяется в файле, например:

    load_video
    insmod part_msdos

Рассмотрение остальной части grub.cfg, неявно, что вторая строка является встроенной функцией личинки, но первой, load_video определяется далее:

function load_video {
    [...]

Поэтому не забудьте включать то определение при включении ссылки на него. Не также бойтесь экспериментирования здесь, если оно не работает, можно все еще загрузить старую систему и начать задавать более конкретные вопросы ;). Худший прибывает в худший, и Вы полностью завинчиваете grub.cfg, загружаете живой CD и заменяете его резервной копией, которую Вы сделали.

2
10.02.2014, 23:35
2 ответа

В основном, потому что [ ] часть основного синтаксиса регулярного выражения в то время как группы получения и {} не. Выход [] средства Вы хотите соответствовать литеральной скобке, не классу.

Как в стороне, если то, что Вы хотите, должно распечатать последнее поле в файле, awk намного легче:

awk '{print $NF}' customers.txt > customers2.txt    

В Вашем особом случае Вы могли также использовать cut:

cut -d':' -f 4 customers.txt > customers2.txt    

и можно всегда использовать Perl:

perl -pe 's/.*:\s*//' customers.txt 
5
27.01.2020, 21:51

По историческим причинам. В первой версии Unix, только символы \[.*^$ имел особое значение в регулярных выражениях. Когда более новые опции были добавлены (опция \?, повторитесь, по крайней мере, однажды \+, повторный счет \{…\}, группы \(…\), чередование \|), они не могли сделать символы ({| особенный, потому что это повредило бы совместимость с существующими сценариями, которые использовали эти символы буквально. Таким образом, основные регулярные выражения и инструменты, которые основываются на них, использовали backslash+character комбинации, которые не использовались в то время.

Расширенные регулярные выражения повредили совместимость в интересах непротиворечивого синтаксиса.

3
27.01.2020, 21:51

Теги

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