我想使用我的应用程序中的数据,通过将输出管道传输到
xargs -l -i myapp notification:generate {} "System maintenance today starting at 4 PM"
向特定组的用户发送通知
我的应用程序可以导出用户组列表,格式如下:
- IT Systems Dep:
- user1
- user2
- Medicine Dep:
- user3
- user4
- user1
但是,该应用程序无法导出特定组的用户。如何使用 sed 或 awk 获取特定组的用户列表,例如在 sed/awk/grep 的帮助下?因此,我在选项中提供特定组(或多个组)的名称并获取用户的简单列表,例如“Medicine Dep”的情况:
user3
user4
user1
谢谢!
在人工智能、自己的大脑和实验的帮助下,我发现了两种情况: (1)awk:
awk -v target_group="groupname" '
/^ - / {
in_target_group = ($0 ~ "^ - " target_group)
}
in_target_group && /^ - / {
print $2
}
'
(2) sed
sed -n '/^ - IT Systems Dep.$/,/^ - [^-]/{/^ - /{s/^ - //p}; /^ - /d}'
或改进的 sed
sed -En '/^[[:space:]]*-[[:space:]]IT Systems Dep.$/,/^[[:space:]]{2}-[[:space:]][^-]/{/^[[:space:]]*-[[:space:]]/{s/^[[:space:]]{4}-[[:space:]]//p}; /^[[:space:]]*-[[:space:]]/d}' user_groups.txt