首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用AWK过滤用户CNs的矩阵模式?

如何使用AWK过滤用户CNs的矩阵模式?
EN

Stack Overflow用户
提问于 2016-08-12 20:03:28
回答 1查看 62关注 0票数 1

这个比较棘手:我有一个包含多个用户DN的文本文件,每个DN下面都有一个带有LogonHours模式的矩阵(使用PowerShell从Active Directory中提取)。看起来像这样:

代码语言:javascript
运行
复制
CN=John Doe,OU=Users,OU=Almox,DC=acme,DC=inc
    Day
    of   --------- Daily  Hours --------
    Week M-3 3-6 6-9 9-N N-3 3-6 6-9 9-M
    Dom  000 000 000 000 000 000 000 000
    Seg  000 000 011 111 111 111 100 000
    Ter  000 000 011 111 111 111 100 000
    Qua  000 000 011 111 111 111 100 000
    Qui  000 000 011 111 111 111 100 000
    Sex  000 000 011 111 111 111 100 000
    Sab  000 000 000 000 000 000 000 000
CN=Jack Dumb,OU=Users,OU=Managers,DC=acme,DC=inc
    All Hours
CN=Barry Foo,OU=Disabled Users,DC=acme,DC=inc
    Day
    of   --------- Daily  Hours --------
    Week M-3 3-6 6-9 9-N N-3 3-6 6-9 9-M
    Dom  000 000 000 000 000 011 111 111
    Seg  111 111 111 111 111 111 111 111
    Ter  111 111 111 111 111 111 111 111
    Qua  111 111 111 111 111 111 111 111
    Qui  111 111 111 111 111 111 111 111
    Sex  111 111 111 111 111 111 111 111
    Sab  111 111 111 111 110 000 000 000

如何使用AWK提取具有特定LogonHours模式的用户名?

我能够使用AWK来计算特定模式的数量,使用“模式文件”作为RS,如下所示:

代码语言:javascript
运行
复制
awk -v RS="$(<patternfile.txt)" '{print RT}' logonhoursCNlist.txt | grep "Week M-3" | wc -l

使用具有以下内容的模式文件的预期结果...

代码语言:javascript
运行
复制
Day
of   --------- Daily  Hours --------
Week M-3 3-6 6-9 9-N N-3 3-6 6-9 9-M
Dom  000 000 000 000 000 000 000 000
Seg  000 000 011 111 111 111 100 000
Ter  000 000 011 111 111 111 100 000
Qua  000 000 011 111 111 111 100 000
Qui  000 000 011 111 111 111 100 000
Sex  000 000 011 111 111 111 100 000
Sab  000 000 000 000 000 000 000 000

..。只是CNs上的用户名,如下所示:

代码语言:javascript
运行
复制
John Doe

如有任何帮助,我将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-12 22:41:13

它应该是这样的(未经测试,但如果不完全是您想要的,它将非常接近):

代码语言:javascript
运行
复制
awk -v RS="$(<patternfile.txt)" 'RT!=""{print gensub(/.*CN=([^,]+).*/,"\\1",1)}' logonhoursCNlist.txt

上面将GNU awk用于多字符RS和gensub()。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38917510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档