Строго говоря, все наоборот :Образы компакт-дисков CentOS предоставляют моментальный снимок (подмножества )сетевых репозиториев.
Содержимое действительно представляет собой локальный репозиторий, из которого устанавливаются пакеты без необходимости доступа к онлайн-зеркалам.
Между прочим, TRANS.TBL
присутствует только на компакт-дисках, потому что он используется для кодирования информации о файловой системе , которая не может быть представлена с использованием базовой файловой системы ISO 9660 CD .
С вашим RegEx есть две проблемы. Это может быть связано с непониманием того, как работают регулярные выражения.
()
специальные символы, используемые для обозначения групп захвата. Однако в остальном они не мешают самому механизму согласования. Поскольку вы не используете группу захвата, ваше регулярное выражение составляет ^.*content=\"\">$
который ожидает шаблон content=""
с пустой строкой в кавычках, и сразу после закрытия>
. Этого не происходит в вашем вводе, поэтому sed
ничего не делает, так как совпадение не достигается.(Между прочим, вам не нужно экранировать "
-, они не являются особыми в RegEx, и ваша программа заключена в одинарные -кавычки, поэтому оболочка также не будет неправильно интерпретировать "
.)^.*content="[^"]*".*>$
вы заменяете совпадающую часть строки, которая из-за якорей является всей линией ,с пустой строкой, поэтому в вашем случае ничего не останется. Чтобы облегчить ситуацию, вам нужно будет вернуться к первоначальной идее использования группы захвата, но использовать ее, чтобы содержать соответствующую часть строки, а затем заменить всю строку содержимым группы захвата, как в:
sed -E 's;^.*content="([^"]*)".*$;\1;'
Это определит содержимое между первым и следующим "
после имени атрибута content=
как группу захвата, но в остальном соответствует всей строке. Затем он заменит всю строку только содержимым группы захвата с помощью выражения \1
.