我正在尝试创建一个简单的脚本,该脚本将从unixdf - h
命令中选择特定的列。我可以使用awk来实现这一点,但是我们如何在python中实现这一点呢?
这里是df -h
输出:
Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_base-lv_root 28G 4.8G 22G 19% / tmpfs 814M 176K 814M 1% /dev/shm /dev/sda1 485M 120M 340M 27% /boot
我想要这样的东西:
第1栏:
Filesystem /dev/mapper/vg_base-lv_root tmpfs /dev/sda1
第2栏:
Size 28G 814M 485M
不是问题的答案,但我试图解决这个问题。:)
下面是完整的示例:
它假定装入点不包含空格。
下面是一个更完整(更复杂)的解决方案,它不需要硬核数列:
可以使用^{} 运行命令并检索其输出,然后使用^{} 和^{} 拆分行和字段。运行^{} ,而不是
df -h
,这样,如果列太长,就不会拆分行。结果是一个行列表。要提取第一列,可以使用
[line[0] for line in df_output_lines]
(注意,列是从0开始编号的)等。您可能需要使用df_output_lines[1:]
而不是df_output_lines
来删除标题行。如果已经将
df -h
的输出存储在某个文件中,则需要首先连接这些行。注意,这假定文件系统名和装入点都不包含空格。如果是这样的话(这在某些unix变体上的一些设置中是可能的),几乎不可能解析} 来获取给定文件系统的信息(这是C function的Python接口,该接口在内部为每个文件系统调用,
df
,甚至df -P
的输出。您可以使用^{df
),但是没有枚举文件系统的可移植方法。相关问题 更多 >
编程相关推荐