在Python脚本中重新排序Bash命令的输出

时间:2016-08-24 19:37:01

标签: python linux bash

我正在处理一个处理Wi-Fi接入点的Python脚本。在脚本中我调用os.system(“iwlist wlan0 s”)来扫描附近的无线AP。

每个我只需要两条信息:名称和MAC地址。我可以grep输出以获取名称或地址的列表,但有没有办法排序它们?例如,我现在可以得到:

ESSID: point 1
ESSID: point 2
etc,

我可以得到

Address: gh:45:df:etc
Address: ofweiofjw

但是可以获得以下内容吗?

name - address
name - address

我正在思考Bash命令本身,或者通过Python脚本中的输出并以某种方式对其进行编辑。

1 个答案:

答案 0 :(得分:0)

import commands

a = commands.getstatusoutput("iwlist wlp9s0 s | grep 'ESSID\|Address'|tr -s ' ' | cut -d'-' -f 2")
for item in a[1].strip().split("Address:"):
    print('-'.join(item.replace('\n','').strip().split("ESSID:")))

返回:

AA:11:DD:44:32:D7 - “Kolagh_nomap”

BB:22:EE:55:EE:21 - “BaBaei”

CC:33:FF:66:13:2C - “阿里”