标题: for中的awk FS问题
[打印本页]
作者: pillow
时间: 2007-10-25 10:48
标题: 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 ]
作者: zhclsy
时间: 2007-10-25 11:32
回家测试一下!呵呵。
作者: pillow
时间: 2007-10-25 11:39
但實際執行時的結果卻只有Sen這部分,即 FS=\"[=(,]\" 這部分並未生效。
对这句纠正一下,不能说完全未生效,因为从结果来看是在以(和空格为分隔符,而不是= ( ,这三个
作者: pillow
时间: 2007-10-26 14:37
若我把这一段生成的txt文件做为fileset让for执行,就能得到我需要的东西。
真想不通……
('dsquery user "LDAP path ou" -inactive 4 ^| gawk
"BEGIN{ FS=\"[=(,]\"; print \"UserName\"} {print $2}"')