gpt4 book ai didi

linux - 如何使用 sed 在两个特定字符( [ ] 括号)之间获取 shell 中的文本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:17:52 25 4
gpt4 key购买 nike

我尝试在 shell 中使用 sed 获取两个特定字符之间的文本,但它似乎不起作用。

我尝试从“[”和“]”获取文本

[561:0:43:0] ->  561:0:43:0 

所以我尝试如下

sed -e '/[/,/]/p' test > test2

测试内容例如:

[561:0:42:0]
[561:0:43:0]
[561:0:478:0]
[561:0:48:0]
[562:0:9:0]

在我读取 test2 时的命令之后,它仍然包含括号

我试图在这里搜索一些替代品,但找不到合适的东西。

有什么建议吗?谢谢

最佳答案

你没有得到预期的输出,因为

  • p 命令打印整个模式空间,(或在您的 sed 命令中读取当前行)

你可以使用类似的东西

$ sed -r 's/\[(.*)\]/\1/g' test
561:0:42:0
561:0:43:0
561:0:478:0
561:0:48:0
562:0:9:0
  • s 命令将 [] 中的任何内容替换为 \1 捕获组 1 的内容,由 (.* )

关于linux - 如何使用 sed 在两个特定字符( [ ] 括号)之间获取 shell 中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27324064/

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