/proc
- это специальная файловая система. Это не то, в чем вы храните файлы. Это виртуальная файловая система, я знаю, что это неправильная аналогия, но считайте ее чем-то вроде драйвера устройства в вашем каталоге /dev
. То, что вы записываете в файлы в /dev
, передается системе определенным образом. Аналогично, когда вы читаете из файла, он получает эти значения из системы. Следовательно, поскольку в этих файлах нет никакой реальной хранимой информации, размер отображается как ноль.
Ограничение области двумя точками:
-e
сообщает sed
, что существует команда редактирования, следующая за
[^>] *
- это шаблон, который соответствует нулю или более символов, которые могут быть "любыми", кроме символа >
и Команда редактирования говорит
's/<[^>]*>//g'
изменить все, что соответствует <
, за которым следует любое количество символов до первого >
на ничего . И сделайте это столько раз, сколько спичек.
Последовательность s / <[^>] *> // g
- это команда для процессор обработки sed
; он приказывает выполнить «Поиск и замену». Итак, -e 's /..../ g'
означает «добавить эту команду поиска и замены к выполнению sed
.
Это может иметь больше смысла, если мы сделаем это. несколько команд в одной команде:
sed -e '1d' -e '$d'
добавит две команды к обработке sed
: «удалить первую строку» и «удалить последнюю строку».
[^>]
- это регулярное выражение, означающее «любой символ, кроме >
, поэтому [^>] *
означает« ноль или более » любого символа, кроме >
И поэтому <[^>] *>
означает <
, за которым необязательно следует не- >
, за которым следует >
.
И затем мы помещаем это в команду «поиск и замена», где эта последовательность заменяется ничем, и затем проделываем это несколько раз в строке (последний g
) .
Это означает, что строка hello
сначала будет соответствовать
( <
, затем abc
соответствует «ноль или более не- >
», затем >
) и замените это ничем, а затем повторите это для
. Результатом будет привет
.
(Обратите внимание на лишние пробелы, потому что мы их не удаляем!)