【发布时间】:2022-12-18 03:21:28
【问题描述】:
Model: ATA KINGSTON SH103S3 (scsi)
Disk /dev/sda: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1024MB 1023MB primary ext4 boot
2 1026MB 120GB 119GB extended
5 1026MB 120GB 119GB logical lvm
Model: ATA WDC WD10EZEX-00W (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 1000GB 1000GB ext4 primary
Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/system-root: 103GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 103GB 103GB ext4
Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/system-swap: 16.4GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 16.4GB 16.4GB linux-swap(v1)
我有这样的文字,我想做的是
在以“型号:”开头的每一行中为磁盘创建循环
然后里面for循环3次,得到3个item, 如果行以 Model 开头: 磁盘 [i].model = 行 Elif 行以磁盘开始 磁盘 [i].size = 行 Elif 行以“1”开头 磁盘 [i].partition = 行
那么接下来
我可以找到哪个分区有关键字 boot
对于磁盘 [i] 中的磁盘
如果 disk[i].partition 包含“boot” DiskContainOs = disk[i].model。
像这样使用双循环是否正确?
我
【问题讨论】:
-
这看起来像是 GNU Parted 的输出,它有一个选项
-m来提供机器可解析的输出,您可能会发现它更容易处理(较新的版本也有一个-jJSON 输出选项)。它为每个磁盘和每个分区提供单行、冒号分隔的输出。