Несколько установок личинки?

Пашины HTML с регулярным воздействием явно обескуражены.

Вместо этого вы можете использовать XMLSTARlet & Если ваши исходные файлы являются действительными XHTML:

xmlstarlet edit -L -u "//div[@class='a']" -v 'some inner HTML' file.xhtml

, если это недействительно, XHTML, попробуйте адаптировать следующий код Perl:

use strict;
use warnings;
use 5.008;

use File::Slurp 'read_file';
use HTML::TreeBuilder;

sub replace_keyword
{
  my $elt = shift;

  return if $elt->is_empty;

  $elt->normalize_content;      # Make sure text is contiguous

  my $content = $elt->content_array_ref;

  for (my $i = 0; $i < @$content; ++$i) {
    if (ref $content->[$i]) {
      # It's a child element, process it recursively:
      replace_keyword($content->[$i])
          unless $content->[$i]->tag eq 'a'; # Don't descend into 
    } else {
      # It's text:
      if ($content->[$i] =~ /here/) { # your keyword or regexp here
        $elt->splice_content(
          $i, 1, # Replace this text element with...
          substr($content->[$i], 0, $-[0]), # the pre-match text
          # A hyperlink with the keyword itself:
          [ a => { href => 'http://example.com' },
            substr($content->[$i], $-[0], $+[0] - $-[0]) ],
          substr($content->[$i], $+[0])   # the post-match text
        );
      } # end if text contains keyword
    } # end else text
  } # end for $i in content index
} # end replace_keyword


my $content = read_file('foo.shtml');

# Wrap the SHTML fragment so the comments don't move:
my $html = HTML::TreeBuilder->new;
$html->store_comments(1);
$html->parse("$content");

my $body = $html->look_down(qw(_tag body));
replace_keyword($body);

# Now strip the wrapper to get the SHTML fragment back:
$content = $body->as_HTML;
$content =~ s!^\n?!!;
$content =~ s!\s*\z!!;

Заимствованы из https://stackoverflow.com/questions/3900870/how-can-i-modify-html-files-in-perl

0
28.11.2014, 18:48
3 ответа

Значит ли это, что у меня есть несколько копий GRUB, занимающих место?

Нет, grub устанавливает большую часть себя в корневой раздел файловой системы (см. подкаталоги /boot), так что если под "установкой несколько раз" вы подразумеваете перезапись одной установки за другой, то и это тоже перезаписывается. EFI/GPT системы используют некоторое дополнительное скрытое пространство, но оно также всегда будет перезаписано (на диске не будет более одного такого пространства).

Просто для ясности: если у вас только один существующий Linux на машине, прекратите чтение сейчас же .

Однако, если вы имеете в виду, что у вас несколько параллельных установок на отдельных существующих разделах, то все они имеют отдельные копии, даже если используется только последняя установленная ( убедитесь, что вы точно знаете, на каком из разделов , очевидно). Скорее всего, можно удалить неиспользуемые. Легким тестом будет перемещение подкаталогов grub2 и efi в подкаталогах /boot временно в отдельный раздел и последующая попытка загрузить эту систему.

Как безопасно удалить лишние копии?

Используйте менеджер пакетов дистрибутива, от него ничего не должно зависеть, хотя он может быть разбит на отдельные части (grub, grub-efi, grub-tools, grub-themes). Если вы не используете менеджер пакетов, он может вернуться в качестве обновления позже. Имейте в виду, что общий размер составляет не более дюжины мегабайт и, как правило, не стоит беспокоиться об этом. Также, я не могу обещать, что некоторые менеджеры пакетов не будут делать глупостей с загрузочным сектором диска (хотя это было бы довольно глупо на самом деле).

1
28.01.2020, 02:36

Вы можете сделать это вручную либо с dd seek, либо проще, так как вы используете усечение:

truncate -s 100M file
mkfs.ext4 -m0 file
#mount, do whatever
umount /mountpoint
#let's grow it to 200 MB
truncate -s 200M file
e2fsck -f file && resize2fs file
#done

2 лайнер для его выращивания, вряд ли призывает к автоматизации здесь, я бы посмел сказать:)

-121--19879-

Оказалось, что для глобального примера конфигурации icewm /etc/icewm/toolbar эта кнопка включена. Чтобы перезаписать его, необходимо создать пустой файл ~/.icewm/toolbar .

-121--146130-

Скорее всего, в каждой из установок Ubuntu установлено пять пакетов:

grub-common  
grub-gfxpayload-lists
grub-pc              
grub-pc-bin          
grub2-common 

Это, однако, незначительное пространство по сравнению с тем, что требуется для одного ядра каждой из этих установок. (IIRC последним из этих пакетов является почти пустой заглушка)

В вашем MBR есть указатель на файлы одной из этих установок, и что установка сканирует другие разделы, находит ядра и помещает их в меню grub. Таким образом, в принципе, вам не нужны другие группы, но общий объем дискового пространства, занимаемого этими пакетами, меньше 10Mb, поэтому зачем беспокоиться?

Что grub не установлен, потому что устаревший grub не установлен (в настоящее время используется grub2 )

1
28.01.2020, 02:36

Если вы спрашиваете, есть ли у вас несколько копий кода системного загрузчика, то ответ - нет. Загрузчик устанавливает свой код в начале жёсткого диска (пустое пространство между таблицей разделов и первым разделом) и перезаписывает всё, что уже было там.

Теперь это для конфигураций MBR. Если у вас есть UEFI bios и он установил несколько пунктов меню, то мне не хватает эксперта, чтобы ответить... Вам нужен какой-нибудь редактор UEFI nvram.

0
28.01.2020, 02:36

Теги

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