bash - 如何解析调制解调器编号、标识符和名称的 nmcli 输出?
问题描述
我认为这对你们中的大多数人来说很容易,但是从中解析调制解调器编号和调制解调器管理器文件夹编号的最有效方法是什么:
root@5109910:~# mmcli -L
/org/freedesktop/ModemManager1/Modem/1 [Sierra Wireless Inc.] Sierra Wireless EM7345 4G LTE
和是动态的ModemManager1
,我希望能够在 shell 脚本中操作调制解调器。1
[Sierra Wireless Inc.] Sierra Wireless EM7345 4G LTE
更具体地说,我想生成以下内容:
MODEM_NUMBER=$(mmcli -L | grep ***PATERN TO PARSE 1 HERE***)
MODEM_DIR=$(mmcli -L | grep ***PATERN TO PARSE ModemManager1 HERE***
MODEM=$(mmcli -L | grep ***PATTERN TO PARSE [Sierra Wireles etc etc HERE***)
解决方案
使用纯 bash,您可以一步完成,即单次调用mmcli -L
命令:
IFS='/ ' read -r _ _ _ mm _ mn mt < <(mmcli -L)
# chek variable's content
declare -p mm mn mt
输出:
declare -- mm="ModemManager1"
declare -- mn="1"
declare -- mt="[Sierra Wireless Inc.] Sierra Wireless EM7345 4G LTE"
细节:
IFS='/ '
: 设置/
或空格作为输入字段分隔符read -r _ _ _ mm _ mn mt
:阅读变量中的第 4、6 和 7 次以后的测试,mm
同时忽略休息mn
mt
< <(mmcli -L)
: 调用命令替换mmcli -L
并将其输出提供给read
推荐阅读
- django - 传递给我的 Django 视图的请求中的“购物车”cookie 是空的,尽管它显示在浏览器存储中
- php - 如何使用 TCPDF 在同一个 PDF 中正确输出多个页面?
- numpy - 使用 numpy 更新更改 numba guvectorize 输出的类类型
- typescript - 有没有办法让 npm 发布到不同于它从 package.json 推断的组织?
- python - 尝试连接散点图日期时间给我来自 matplot 的 tz 错误
- r - 如何在图表中添加黑色轮廓?
- ios - 在 UICollectionView 或 UITableView 中实现 Sticky Cell
- c# - MVC 文本框绑定多个属性
- reactjs - 是否可以使用 useSWR 在 nextJS 中发送页面 ID,以便我可以根据我所在页面的 ID 获取数据
- powershell - PowerShell 大于也包括等于的项目