【发布时间】:2021-05-03 13:41:24
【问题描述】:
有人可以帮我获取字符串列表并根据行号枚举字符串值吗?
我试图弄清楚如何解析所有我最喜欢的网络 SSID,然后根据输出的顺序为每个 SSID 分配一个编号。示例:
如果我运行 networksetup -listpreferredwirelessnetworks en0(在 macOS 上),我会根据我最近的 Wi-Fi 收藏列表(Apple 将其称为“首选网络”列表)得到以下输出:
Preferred networks on en0:
Denny's
Hilton Hotel 2465
Hipster Cafe
My_Moms_Basement
Airport_bar
Marriot - Public-5G
OFFICE
我想解析上面的输出,搜索/过滤我的公司 SSID(在本例中为“OFFICE”),然后获取其行号(在本例中,“OFFICE”列在第 8 行 - 如果您计算标题"en0 上的首选网络:")。
最终我想确定 SSID "OFFICE" 是否在列表顶部,如果不是,那么我将使用 networksetup 命令将其移至顶部 - 但我只想在以下情况下采取行动SSID“OFFICE”尚未位于顶部。在这种情况下,Apple 将顶行视为“索引 0”(因此行/数组计数在技术上从 0、1、2、3 等开始)。
我已经尝试过 wc、sort 和各种计数循环,但我似乎无法得到我想要的输出。
谢谢!
【问题讨论】:
标签: regex bash parsing filtering string-comparison