У меня есть потребность в различной информации об оборудовании. такие как серийные номера, возможности, среди многих других, и для этого я нашел hwinfo , но он получает информацию намного больше, чем мне нужно.

Например:

18: IDE 200.0: 10600 Disk
[Created at block.245] 
Unique ID: WZeP.yFECJK3_8V4
Parent ID: w7Y8.7HLn7TSO9I7
SysFS ID: / class / block / sdb
SysFS BusID: 2: 0: 0: 0
SysFS Device Link:/devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0
Hardware Class: disk
Model: "KINGSTON SV300S3"
Vendor: "KINGSTON"
Device: "SV300S3"
Revision: "BBF0"
Serial ID "50026B77470B5AC3"
Driver: "ahci", "sd"
Driver Modules "ahci"
Device File: / dev / sdb
Device Files: / dev / sdb, / dev / disk / by-id / ata KINGSTON_SV300S37A120G_50026B77470B5AC3, / dev / disk / by-id / WWN-0x50026b77470b5ac3
Device Number: block 8: 16-8: 31
BIOS id: 0x81
Geometry (Logical): CHS 14593/255/63
Size: 234441648 sectors 512 bytes
Capacity: 111 GB (120,034,123,776 bytes)
Config Status: config = new, avail = yes, need = no, active = unknown
Attached to: # 13 (controller SATA)

Мне нужно было получить этот информационный блок среди прочих: Unique ID , Hardware class , model , Serial ID , Device File .

Но проблема не останавливается на достигнутом, потому что помимо информации о диске, нужны процессор, память и т.д .. Как я могу выбрать эту информацию и сохранить ее в текстовом файле? Проведя некоторое исследование, я нашел SED и AWK , но я считаю, что внедрение информации caputra с этими двумя программами было бы трудоемким или было бы правильным путем?

2 ответа2

2

Хотя sed и awk являются мощными, для требований, которые вы указали до сих пор, вам нужен только гораздо более простой grep:

$ hwinfo | grep -E 'Unique ID|Hardware class|model|Serial ID|Device File:'
Unique ID: WZeP.yFECJK3_8V4
Serial ID "50026B77470B5AC3"
Device File: / dev / sdb

(Приведенный выше вывод был сгенерирован с использованием вывода hwinfo, как показано в вопросе.)

0

Попробуйте начать с сценария bash/shell, который использует sed с подавлением и печатью.

Например, (и я не знаком с hwinfo, но я предполагаю, что это команда, которая выводит на стандартный вывод):

hwinfo | sed -n '/^Unique ID.*/p; /^Hardware class.*/p;'

Это даст вам только строки для "Уникальный идентификатор" и "Класс оборудования".

Чтобы записать в файл и сделать эту команду более разборчивой, просто используйте > для вывода в файл, и вы можете разбивать строки с помощью \:

Итак, это:

hwinfo | sed -n '/^Unique ID.*/p; /^Hardware class.*/p;' > myoutputfile.txt

Может быть превращен в многострочную команду, которая может захватывать больше параметров, например так:

hwinfo | sed -n '/^Unique ID.*/p;'\
'/^Hardware class.*/p;'\
 > myoutputfile.txt # space at beginning of this line is important.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .