我尝试用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/