中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: for中的awk FS问题 上一主题 | 下一主题
pillow
初级用户





积分 196
发帖 82
注册 2005-9-26
状态 离线
『楼 主』:  for中的awk FS问题

原目的是希望將AD中4周未登陸賬號導出來,並去掉多餘信息,控制輸出格式。 使用命令如下: for /F "tokens=*" %i in ('dsquery user "LDAP path ou" -inactive 4 ^| gawk "BEGIN{ FS=\"[=(,]\"; print \"UserName\"} {print $2}"') do echo %i ()中的部分: dsquery user "LDAP path ou" -inactive 4 | gawk "BEGIN{ FS=\"[=(,]\"; print \"UserName\"} {print $2}" 可以產生正確的需處理文本 "LDAP path ou"代表account所在的OU,當不加AWK部分時,輸出是我所需要的,即如下形式: "CN=Jaks Sen(張三_London),LDAP path ou" 需求是將=和(中間的部分 Jaks Sen 取出,且改為Jaks_Sen。 但實際執行時的結果卻只有Sen這部分,即 FS=\"[=(,]\" 這部分並未生效。 請教是否AWK放進FOR之後,還有什麼需要注意的地方? [ Last edited by pillow on 2007-10-25 at 11:01 AM ]


2007-10-25 10:48
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zhclsy
初级用户





积分 83
发帖 34
注册 2007-10-14
状态 离线
『第 2 楼』:  

回家测试一下!呵呵。


2007-10-25 11:32
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
pillow
初级用户





积分 196
发帖 82
注册 2005-9-26
状态 离线
『第 3 楼』:  

但實際執行時的結果卻只有Sen這部分,即 FS=\"[=(,]\" 這部分並未生效。 对这句纠正一下,不能说完全未生效,因为从结果来看是在以(和空格为分隔符,而不是= ( ,这三个


2007-10-25 11:39
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
pillow
初级用户





积分 196
发帖 82
注册 2005-9-26
状态 离线
『第 4 楼』:  

若我把这一段生成的txt文件做为fileset让for执行,就能得到我需要的东西。 真想不通…… ('dsquery user "LDAP path ou" -inactive 4 ^| gawk "BEGIN{ FS=\"[=(,]\"; print \"UserName\"} {print $2}"')


2007-10-26 14:37
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: