У меня есть Java-код
HardwareAbstractionLayer hal = new SystemInfo().getHardware();
hal.getProcessor().getProcessorID()
Из которого я получаю ProcessorId
на моем компьютере с Ubuntu 18
В любом случае я могу проверить это значение с помощью любой команды Linux?
Редактировать: я обновил аппаратный API с помощью кода:
hal.getProcessor().getProcessorIdentifier().getProcessorID()
, и теперь я получаю правильный идентификатор процессора: A9 06 03 00 FF FB EB BF
следующая команда дает значение, но с некоторым текстом
sudo dmidecode -t processor | grep -E ID
ID:A9 06 03 00 FF FB EB BF
Редактировать: Спасибо @Steve And @ WinEunuuchs2Unix Моя последняя команда, которая выполнила трюк, -
dmidecode -t processor | grep -E ID | sed 's/.*: //' | head -n 1
Из комментариев:
sudo dmidecode -t processor | grep -E ID | sed 's/.*: //'
Эти sed
команда используется для удаления префикса строки: "идентификатор": как объяснено в этом популярном ответе:
Объяснение:
Первая часть передает строку по каналу к
sed
.второй является основная sed замена. Часть между первым и вторым / является regex для поиска и часть между вторым, и третье - то, что заменить его (ничто в этом случае, поскольку мы удаляем).
Для regex. соответствуют любой символ, * повторяет это любое количество раз (включая нуль) и: соответствует двоеточию. Так эффективно это - что-либо сопровождаемое двоеточием. Так как.* может включать двоеточие, соответствие является 'жадным', и все до последнего двоеточия включено.