通过编写 ldapsearch
命令,例如:
ldapsearch -h ipaddress -p 389 -D "cn=func_01_acc,ou=admins,dc=akademia,dc=int" \
-w akademia.01 -b "ou=stud01,dc=akademia,dc=int" "(l=Torun)" sn cn telephonenumber -LLL |
grep sn: | awk '{print $2 "|" $1}' | sort | uniq -u
我得到了输出:
dn: uid=s21705,ou=stud01,dc=akademia,dc=int
telephoneNumber: +78123793414
cn: Benny Flowers
dn: uid=s21711,ou=stud01,dc=akademia,dc=int
telephoneNumber: +78123439058
cn: Jacqueline Newton
问题是:如何格式化为
Benny Flowers|+78123793414
JAcqueline Newton|+78123439058
我走的最远的地方是:
ldapsearch -h ipaddress -p 389 -D "cn=func_01_acc,ou=admins,dc=akademia,dc=int" \
-w akademia.01 -b "ou=stud01,dc=akademia,dc=int" "(l=Torun)" sn cn telephonenumber -LLL |
grep sn: | grep dn: | sed 's/telephoneNumber: //' | sed 's/cm: //'
我有:
+123123123
Name Surname
+123123123
Name Surname
我尝试用以下方式反转数字和名称:
for ((i=0;i<$elements;i++)); do
echo ${array[${i}]}
done
它打印了输出,但我无法找到如何将值传递给名称临时数组和另一个处理数字的数组。
任何建议都会有所帮助。
最佳答案
如果您将第一个输出通过管道传输到:
sed -rn '/ telephoneNumber: /{N;s/[^:]*: (.*)\n[^:]*: (.*)/\2|\1/p;}'
您将获得:
Benny Flowers|+78123793414
Jacqueline Newton|+78123439058
在 OSX 上使用 -En
。
sed
将搜索每个 telephoneNumber
条目,N
会将其与下一行放在一起,()
将匹配姓名和电话号码,最后 \2|\1
格式化结果字符串。
关于bash - 使用 awk/bash 过滤 ldapsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35529922/