shell - xargs 多个替换字符串
问题描述
我想使用 curl 并行发出一堆 http 请求,以对服务器进行一些性能测试。
该请求需要一个MAC地址,我想通过以下方式向上计数。
00:00:00:00:AA:BB
^ ^
| \___ count from 00 to ff (hex)
\______ count from 00 to ff (hex)
BB 大于 0xFF 时溢出到 AA
到目前为止,我得到的是递增 BB 并以并行方式发送请求。
printf "%02x\n" {0..255} | xargs -I{} -P4 -- \
curl -s \
http://nginx/api/onboard/01:02:03:04:00:{}
这很好用,但我需要请求超过 256 次。
xargs 是 BusyBox v1.31.1
解决方案
我找到了解决方案。它实际上与我最初认为的 xargs 无关。
printf "%04x\n" {0..1000} | \
sed -r 's/([[:xdigit:]]{2})([[:xdigit:]]{2})/\1:\2/g' | \
xargs -I{} -P4 -- \
curl -k -s \
https://nginx/api/onboard/21:12:12:12:{}
我正在使用 printf 和 sed 的组合创建 MAC 所需的部分。可能有更好的方法,但它解决了我的问题。
推荐阅读
- three.js - Cesium 的 Tileset 位于 Potree 的点云后面
- typescript - 将 Sequelize.Instance 与 Sequelize v5 和 Typescript 一起使用
- python - 如何将 django 事务应用于每个 celery 任务?
- java - Spring Hibernate中实体字段的本地化
- modal-dialog - 自定义动态对话框 PRIMNG
- node.js - 我无法在其范围之外获得回调函数的结果
- android - Dagger2 + ViewModel + 存储库
- javascript - Javascript 上的 indexOf 无法在 Array 上按预期工作
- javascript - 我可以将 map 函数与 2 个数组一起使用吗?
- python - python - 如何在python中生成具有一致单词定位的wordcloud?