gpt4 book ai didi

linux - Unix (ksh) 脚本,用于读取文件、解析和仅输出某些列

转载 作者:太空宇宙 更新时间:2023-11-04 10:54:28 24 4
gpt4 key购买 nike

我有一个看起来像这样的输入文件:

"LEVEL1","cn=APP_GROUP_ABC,ou=dept,dc=net","uid=A123456,ou=person,dc=net"
"LEVEL1","cn=APP_GROUP_DEF,ou=dept,dc=net","uid=A123456,ou=person,dc=net"
"LEVEL1","cn=APP_GROUP_ABC,ou=dept,dc=net","uid=A567890,ou=person,dc=net"

我想读取每一行,解析然后像这样输出:

A123456,ABC
A123456,DEF
A567890,ABC

换句话说,从“uid=”中检索用户 ID,然后从“cn=APP_GROUP_”中检索标识符。对每个输入记录重复,写入新的输出文件。

请注意,列位置不固定,因此不能依赖位置,我猜我必须搜索“uid=”字符串并以某种方式使用该位置?

非常感谢任何帮助。

最佳答案

您可以使用 sed 轻松完成此操作:

sed 's/.*cn=APP_GROUP_\([^,]*\).*uid=\([^,]*\).*/\2,\1/'

正则表达式捕获两个所需的字符串,并以相反的顺序输出它们,并在它们之间添加一个逗号。您可能需要根据数据的精确性质更改捕获的上下文,因为 uid= 将匹配 last uid= 在一行中,如果有多个。

关于linux - Unix (ksh) 脚本,用于读取文件、解析和仅输出某些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29393486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com