Я не уверен, чего именно вы хотите, поскольку вы слишком зациклены на сортировке/уникализации.
Однако, если все, что вам нужно, это обрезать повторяющиеся строки, например, 4,5,6 и 8,9,10, тогда вы можете сделать это в своем последнем файле, который вы показываете, который содержит строки //NODECLASS:
perl -F\" -lane '
print,next if $. < 3;
print if ! $h{($F[1] =~ /:(.*?):/)[0]}++;
' NODE_CLASS_file
где первые 2 строки пропущены. В остальном мы смотрим на 2-е поле, число между:/:(.*?):/
предоставит вам число, после чего вам нужно попасть в скалярный контекст, поместив его в (...)[0]
и передать его как ключ к хешу %h
. Печатать текущую строку, только если этот ключ еще не был замечен.
Причиной ошибки отказа в доступе является то, что раздел смонтирован какro
(только для чтения -). Причина в основном в том, что раздел Windows неправильно закрыт и находится в спящем режиме (, вы можете попробовать запустить dmesg
, чтобы найти соответствующие строки)
Вы можете исправить это, правильно завершив работу Windows, используя shutdown /s /f /t 0
в cmd.exe
.
Если это не решило проблему, я отредактирую свой ответ, чтобы он содержал инструкции о том, как вручную смонтировать раздел Windows (в 90+% случаев, правильное завершение работы устраняет ).