You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用sed/awk/grep从应用组用户列表提取特定组用户

提取指定组用户的几种方法

使用 sed

利用地址范围匹配目标组及其后续用户行,过滤并格式化输出:

sed -n '/^  - Medicine Dep:/,/^  - /{/^    - /s/^    - //p}' user_groups.txt

解释:

  • -n 只输出匹配的行
  • /^ - Medicine Dep:/,/^ - / 定位从目标组行到下一个组开头的范围
  • /^ - /s/^ - //p 在范围内匹配用户行,去掉前缀后打印

使用 awk

通过标记变量控制输出逻辑,精准提取目标组下的用户:

awk '/^  - Medicine Dep:/{flag=1;next}/^  - /{flag=0}flag&&/^    - /{sub(/^    - /,"");print}' user_groups.txt

解释:

  • 匹配到目标组时,开启标记flag并跳过当前行
  • 匹配到其他组时,关闭标记flag
  • 标记开启且是用户行时,移除前缀后打印

使用 grep + sed

组合工具实现分段过滤:

grep -A 100 "Medicine Dep:" user_groups.txt | grep -v "Medicine Dep:" | grep -B 100 "^  - " | grep "^    - " | sed 's/^    - //'

解释:

  • -A 100 获取目标组后的100行(可根据实际用户数量调整行数)
  • 依次过滤掉目标组行、下一个组及之后的行,最后提取并格式化用户行

提取出用户列表后,即可通过管道传入xargs执行通知命令:

# 以awk方法为例
awk '/^  - Medicine Dep:/{flag=1;next}/^  - /{flag=0}flag&&/^    - /{sub(/^    - /,"");print}' user_groups.txt | xargs -l -i myapp notification:generate {} "System maintenance today starting at 4 PM"

内容的提问来源于stack exchange,提问作者Oleksa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 18:23:17