提取同一行上两个搜索模式之间的值

种族

我在文件Output.dat中具有以下内容。我需要提取价值之间dn: uid=,ou=

 dn: uid=user1,ou=Active,ou=Member,dc=domain,dc=org
 dn: [email protected],ou=Active,ou=Member,dc=domain,dc=org
 dn: uid=usertest,ou=Active,ou=Member,dc=domain,dc=org
 dn: uid=abc1,ou=Active,ou=Member,dc=domain,dc=org
  • 我尝试使用
    sed -e '/dn: uid=/,/,ou=/p' output.dat but
    
    它返回整行而不是值。
  • 尝试使用时
    sed -e '/dn: uid=/,/,ou=/\1/p' output.dat
    
    然后出现以下错误:
    sed: -e expression #1, char 18: unknown command: `\'
    
钢铁司机

如果您具有-P支持PCRE(的GNU grep版本,则假设您的意思是第一次出现,ou

grep -oP '(?<=dn: uid=).+?(?=,ou=)' file

如果要匹配第二个 ,ou,可以删除非贪婪?修饰符

grep -oP '(?<=dn: uid=).+(?=,ou=)' file

括号中的表达式是零长度的断言(又称环顾四周),表示它们构成匹配的一部分,但不作为结果的一部分返回。您可以在perl中本地执行相同的操作,例如

perl -ne 'print "$1\n" if /(?<=dn: uid=)(.+?)(?=,ou=)/' file 

可以使用常规(非零长度)分组在sed中执行类似操作,例如(对于GNU sed-其他变体可能需要额外的转义)

sed -rn 's/(.*dn: uid=)([^,]+)(,ou=.*)/\2/p' file

或略微简化

sed -rn 's/.*dn: uid=([^,]+),ou=.*/\1/p' file

请注意,[^,]这里的hack有点问题,因为sed没有真正的非贪婪匹配选项。


事后思考:尽管这并不是您所要的,但实际上您想要name=value从文件中读取逗号分隔的对,然后从名称中进一步拆分第一个字段的值,这似乎是您真正想要做的您可以通过多种方式实现这一目标-包括

awk -F, '{sub(".*=","",$1); print $1}' file

或纯现金解决方案,例如

while IFS=, read -r a b c d; do printf '%s\n' "${a#*=}"; done < file 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在同一行上的两个模式匹配之间打印

来自分类Dev

如何在同一行的两个模式之间排除文本

来自分类Dev

如何提取两个向量之间每一行的值范围?

来自分类Dev

SQL组两个值在同一行

来自分类Dev

在列表视图的同一行上显示两个值

来自分类Dev

同一张表上的两个查询显示同一行具有不同的值?

来自分类Dev

如何使用sed在一行中有多次出现的两个模式之间搜索文本?

来自分类Dev

无法在同一行上获得输出,在 C++ 中的两个输出之间有空格

来自分类Dev

如何提取以一个模式开头的行和两个模式之间的块?

来自分类Dev

在模式搜索的同一行上插入sed文本

来自分类Dev

在同一行中的两个div之间放置空格

来自分类Dev

提取一行中两个单词之间的内容

来自分类Dev

提取一行中两个单词之间的内容

来自分类Dev

如何提取一行中两个关键字之间出现的单词?

来自分类Dev

将两个模式之间的多行数据Perl转换为一行输出

来自分类Dev

使用 grep 或其他工具从另一个文件中的同一行上的两个字符串搜索文件

来自分类Dev

如何在Lisp的同一行上打印两个项目?

来自分类Dev

如何在同一行上获得两个h4标签?

来自分类Dev

纤细模板:是否可以将两个元素放在同一行上?

来自分类Dev

引导程序:在同一行上对齐两个按钮

来自分类Dev

如何在同一行上左右对齐两个段落?

来自分类Dev

两个内联块元素始终在同一行上

来自分类Dev

如何在引导程序的同一行上放置两个div

来自分类Dev

如何将两个Bootstrap输入组放在同一行上?

来自分类Dev

在同一行上对齐两个div,而无需修改HTML

来自分类Dev

如何在两个TextViews的同一行上设置图像?

来自分类Dev

Streamwriter:在同一行上写入两个列表框

来自分类Dev

如何在同一行上放置两个div?

来自分类Dev

C编程简单问题。在同一行上询问两个输入

Related 相关文章

  1. 1

    在同一行上的两个模式匹配之间打印

  2. 2

    如何在同一行的两个模式之间排除文本

  3. 3

    如何提取两个向量之间每一行的值范围?

  4. 4

    SQL组两个值在同一行

  5. 5

    在列表视图的同一行上显示两个值

  6. 6

    同一张表上的两个查询显示同一行具有不同的值?

  7. 7

    如何使用sed在一行中有多次出现的两个模式之间搜索文本?

  8. 8

    无法在同一行上获得输出,在 C++ 中的两个输出之间有空格

  9. 9

    如何提取以一个模式开头的行和两个模式之间的块?

  10. 10

    在模式搜索的同一行上插入sed文本

  11. 11

    在同一行中的两个div之间放置空格

  12. 12

    提取一行中两个单词之间的内容

  13. 13

    提取一行中两个单词之间的内容

  14. 14

    如何提取一行中两个关键字之间出现的单词?

  15. 15

    将两个模式之间的多行数据Perl转换为一行输出

  16. 16

    使用 grep 或其他工具从另一个文件中的同一行上的两个字符串搜索文件

  17. 17

    如何在Lisp的同一行上打印两个项目?

  18. 18

    如何在同一行上获得两个h4标签?

  19. 19

    纤细模板:是否可以将两个元素放在同一行上?

  20. 20

    引导程序:在同一行上对齐两个按钮

  21. 21

    如何在同一行上左右对齐两个段落?

  22. 22

    两个内联块元素始终在同一行上

  23. 23

    如何在引导程序的同一行上放置两个div

  24. 24

    如何将两个Bootstrap输入组放在同一行上?

  25. 25

    在同一行上对齐两个div,而无需修改HTML

  26. 26

    如何在两个TextViews的同一行上设置图像?

  27. 27

    Streamwriter:在同一行上写入两个列表框

  28. 28

    如何在同一行上放置两个div?

  29. 29

    C编程简单问题。在同一行上询问两个输入

热门标签

归档