我尝试用sed在shell中获取两个特定字符之间的文本,但似乎不起作用。
我试图从“[”和“]获取文本

[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命令中打印当前行read)
你可以用一些像

$ 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/

10-08 21:13