Ядро настраивает всевозможные вещи (ЦП, память, другие компоненты платформы низкого -уровня, такие как контроллеры прерываний )на ранних этапах загрузки, и соответствующие сообщения записываются на всех этапах загрузки. время. Временные метки будут нулевыми для всех сообщений до момента инициализации источника синхронизации. Таким образом, даже если в какой-то момент ранней загрузки произойдет длительная задержка, вы не увидите ее по временным меткам. Такие инструменты, как systemd-bootchart
, просто визуализируют данные временных меток, так что здесь они тоже не помогут.
Вам нужно внимательно просмотреть журнал dmesg на ранних стадиях, чтобы увидеть, не происходит ли что-то не так. Если нет неправильного поведения компонента платформы, неправильной доставки прерывания или чего-то еще, задержки, возможно, могут быть вызваны такими шагами, как сбор энтропии для KASLR. Вы можете попробовать отключить это с помощью параметра загрузки nokaslr
и посмотреть, поможет ли это.
Табулатура, которую вы разместили, кажется, построена из шести -длинных частей символов, -x----
, где x
— либо номер лада, либо тире. Вот так:
123456123456123456
-x-----x-----x----
|------------------|
|------------------|
|-0----------------|
|-2-----2-----2----|
|-------2----------|
|-------------0----|
Если они все с этим интервалом, вы можете просто изменить части, чтобы удалить некоторые черточки, не обращая внимания на другие строки.
$ sed -Ee 's/-(.)----/-\1/g; s/\|/-|/2' < tab
|-------|
|-------|
|-0-----|
|-2-2-2-|
|---2---|
|-----0-|
Но если у вас в одном и том же файле записаны табуляции с разными интервалами, то это становится намного сложнее, так как нам нужно будет распознавать интервалы для каждой табуляции, а вообще это невозможно сделать даже с первого раза линия. (, так как он может быть пустым, как в вашем примере.)
Решения, которые я могу придумать для более общего случая, включают в себя расшифровку всей табулатуры и последующую ее перепечатку, что не подходит для этого ответа.
Обратите внимание, что синтаксис sed /this/,/that/
обрабатывает блоки строк, где первая строка соответствует /this/
, последняя строка соответствует /that/
, а блок содержит все строки в между. Таким образом, /--/,/--/,/--/,...
является абсурдом, поскольку существует больше шаблонов, чем просто начало и конец блока.
Чтобы сопоставить блок, похожий на табулатуру, вам нужно сопоставить |-
, а затем расширить блок на шесть строк. В GNU sed для этого можно использовать /^|-/,+6
.
Я сделал следующим способом
команда
i=`awk '{print NR}' l.txt | sort -nr | sed -n '1p'`
for ((j=1;j<=$i;j++)); do sed -n ''$j'p' filename|awk -F "" '{gsub("","\n",$0);print $0}'|sort | uniq;done| sed '/^$/d'| sed "N;s/\n/ /g"| awk '{print $NF,$1}'| sed -r "s/ //g"
выход
x\
x\
x\
x\
x\
x\
В vim используйте визуальный -блочный режим, чтобы выделить столбцы для удаления с помощью
<C-v>
и ваши любимые команды перемещения(o
и O
переходят к углам блока, чтобы вы могли исправить ошибку ).
Затем введите d
.