0

我有一个看起来像这样的列表:

['2    19   2839475239874 hda']

我需要从最后提取hda。但是,hda 可能并不总是最后一个块,hda 可能并不总是只有 3 个字母(可能是 4 或 5,也可能包括数字);但它总是以字母“h”开头。

成功提取 hda 后,我需要将该块插入 dd 命令。看起来像这样:

dd if=/dev/zero of=/dev/hda bs=512 count=1

但是,如果每次运行 dd 命令时 hda 都可能不同,我需要一种方法来更改 dd 命令的“hda”部分。

抱歉,如果这令人困惑,我是初学者,我自己也很困惑!我尝试使用startswith进行提取,但甚至无法通过那里!

4

2 回答 2

1
>>> thelist = ['2    19   2839475239874 hda']
>>> [item for item in thelist[0].split() if item[0] == 'h'][0]
'hda'
于 2013-07-11T12:31:04.630 回答
1

就像这样:

lst = ['2    19   2839475239874 hda']

# Extracting the device part
dev = filter(lambda s: s[0] is 'h', lst[0].split())[0]

# Inserting it
cmd = 'dd if=/dev/zero of=/dev/{0} bs=512 count=1'.format(dev)

您将需要检查列表中没有任何 h 字的情况。

于 2013-07-11T12:29:41.057 回答