О разбиении MSDOS на разделы:
This would seem to indicate that the first hard drive has a fat partition of some sort on the second disk partition and is referred to as an msdos partition scheme.
На самом деле указание msdos2
имеет отношение только к схеме разбиения; Формат, используемый для определения разделов. Например, альтернативный формат — GPT. Это не имеет ничего общего с содержимым разделов, например, с используемыми файловыми системами, такими как FAT.
Относительно срезов:
What is a sub partition and how does it differ from logical and extended partitions? More specifically: what is a BSD 'a' partition and a first PC slice number?
Путаница здесь происходит из-за разницы в терминологии в системах BSD Unix. В игре есть два уровня «разделения».
Первый — это разделы MSDOS (или GPT ). На этом уровне информация о разделах хранится в структуре, расположенной в начале диска (, а в случае GPT копия хранится в конце диска ). Это уровень разделения, понятный аппаратному обеспечению; Прошивка BIOS или UEFI знает, как загрузить ОС (или менеджер загрузки/загрузчик )с таких разделов.
Вторым уровнем в данном случае является метка диска BSD . Эта информация о разделах хранится в разделе MSDOS/GPT. Кроме того, аппаратное обеспечение (, по крайней мере, в случае ПК ), не понимает и не использует этот уровень разделения. Операционная система должна что-то с этим сделать. Системы BSD могут использовать эту схему разбиения.
А вот и кикер. В контексте систем BSD,раздел MSDOS/GPT называется слайсом, а подразделы -, созданные меткой диска BSD, называются разделами.
Возможно, вы заметили сходство между разделами BSD и логическими разделами MSDOS. Хотя они концептуально похожи, в том, что раздел верхнего уровня -разделен на подразделы -, как вы можете видеть, они реализованы по-разному.
Использованиеawk
:
awk '/user=/{gsub(/^.*user=|,.*$/, "");print $0}' file
Если вы хотите отображать user=
и имя файла, команду можно изменить.
awk '/user=/{gsub(/^.*user=|,.*$/, "");
printf "%s:user=%s\n",FILENAME,$0}' *.log
В этой команде, если найден user=
, то Функция gsub()
принимает символы от начала записи до user=
и после запятой после user
до конца записи изменяет их на пустую строку(""
).
Используйте GNU grep
сPCRE
:
grep -Po -- '(?<=user=).+?(?=,)' *.log
Если вы также хотите отображать ключевое слово user=
:
grep -o -- 'user=[^,]*' *.log
вы даже можете отобразить файл, в котором совпадение прошло успешно, добавив опцию -H
к команде grep
выше (без нее, имя файла отображается только в том случае, если указано более одного файла ).
Таким образом, команда grep
становится:
grep -Ho -- 'user=[^,]*' *.log
И вывод:
pgsql.log:user=postgres
pgsql.log:user=postgres