Использование комбинации sed
, uniq
иawk
:
$ sed '/^[^[:space:]]/{s/^[^[:space:]]* //g;s#\\##g;h;}; g' file | uniq -c | awk '{ $1 -= 1; print }'
2 vvnm/asj/pqr
3 kfjwej/asj/pqr
0 flkm/csj/lqr
2 kmflkm/asj/pqr
Сценарий sed
, аннотированный:
/^[^[:space:]]/{ # this line starts with a non-space
s/^[^[:space:]]* //; # remove the thing that is not a space, up to the space
s#\\##g; # remove backslashes
h; # store in hold space
};
g; # get hold space
# (implicit print)
Это заменяет каждую «подстроку -заголовка» соответствующей «строкой заголовка», создавая
vvnm/asj/pqr
vvnm/asj/pqr
vvnm/asj/pqr
kfjwej/asj/pqr
kfjwej/asj/pqr
kfjwej/asj/pqr
kfjwej/asj/pqr
flkm/csj/lqr
kmflkm/asj/pqr
kmflkm/asj/pqr
kmflkm/asj/pqr
Затем мы позволяем uniq
подсчитать количество последовательных уникальных строк, генерируя
3 vvnm/asj/pqr
4 kfjwej/asj/pqr
1 flkm/csj/lqr
3 kmflkm/asj/pqr
С помощью awk
мы просто уменьшаем число в первом поле этого.
Наконец-то я решил проблему.
Проблема возникла из-за того, что в настройках BIOS операции SATA по умолчанию был установлен режим RAID On
вместо режима AHCI
при недавно замененной материнской плате.
Таким образом, изменение операции SATA на AHCI с последующим отключением безопасной загрузки (, чтобы избавиться от недопустимой подписи ядра ), устранило проблему.