我有一个文件,它从 ldapsearch 命令获取详细信息并创建文件,如下所示
# lschuler, people, pl.s2-eu.XXXXXXXXX.local
dn: uid=lschuler,ou=people,dc=pl,dc=s2-eu,dc=XXXXXXXXX,dc=local
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
loginShell: /bin/bash
homeDirectory: /home/lschuler
gidNumber: 10000
uid: lschuler
cn: Leonie Schuessler
uidNumber: 20056
mail: [email protected]
sn: Schuessler
givenName: Leonie
# cadelie, people, pl.s2-eu.XXXXXXXXX.local
dn: uid=cadelie,ou=people,dc=pl,dc=s2-eu,dc=XXXXXXXXX,dc=local
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
loginShell: /bin/bash
homeDirectory: /home/cadelie
gidNumber: 10000
uid: cadelie
cn:: Q2hsb8OpIEFkw6lsaWU=
uidNumber: 20057
mail: [email protected]
sn:: QWTDqWxpZQ==
givenName:: Q2hsb8Op
如果您看到sn:: & givenName::有时有 base64 值,我想用我无法执行的命令对其进行解码
cat file.text | sed -e "s/.*sn:: //g;s/;.*//" |base64 -d && cat file.text | sed -e "s/.*givenName:: //g;s/;.*//" |base64 -d
我如何只解码具有 base64 值的 sn:: & givenName:: 并再次保存到同一个文件。
请帮忙,SAMURAI
使用 perl 及其MIME::Base64模块,下面的代码使用 base64 解码字段名称以两个冒号 (::) 结尾的每一行的数据。其他线路保持不变。
MIME::Base64
是核心 perl 模块,自 v5.8(2002 年 7 月)起包含在 perl 中。这打印到标准输出。要使其修改输入文件,您可以使用 perl 的
-i
就地编辑选项。使用任何 awk:
它为每次调用都分离出一个子外壳
base64
,因此该部分会很慢。