当前位置: 技术问答>linux和unix
如何得到中括号中的内容
来源: 互联网 发布时间:2016-09-20
本文导语: 如何得到中括号中的内容? 例如: abcd[123]asdf[456] asdf [789] adsf | try: root@yeah ~ $ echo 'abc[123]asdf[456] sdf[789] sdf[345]sdf'|sed 's/][^][]+[/ /g;s/[^[]+[//;s/].*//' 123 456 789 345 root@yeah ~ $ | ...
如何得到中括号中的内容?
例如: abcd[123]asdf[456] asdf [789] adsf
例如: abcd[123]asdf[456] asdf [789] adsf
|
try:
root@yeah ~
$ echo 'abc[123]asdf[456] sdf[789] sdf[345]sdf'|
123 456 789 345
root@yeah ~
$
root@yeah ~
$ echo 'abc[123]asdf[456] sdf[789] sdf[345]sdf'|
sed 's/][^][]+[/ /g;s/[^[]+[//;s/].*//'
123 456 789 345
root@yeah ~
$
|
sed -n 's/.*[(.*)]/1/p'
|
1楼的 如果是多行就有问题
2楼的 如果一行多个总括号 只会输出该行最后一个中括号内的
2楼的 如果一行多个总括号 只会输出该行最后一个中括号内的
|
[root@CentOS ~]# cat aa
aaa
bbb
accc[111]dfsdfsdg[2222]
ssssaa[888]
[root@CentOS ~]# sed 's/][^][]+[/ /g;s/[^[]+[//;s/].*//' aa
aaa
bbb
111 2222
888
aaa
bbb
accc[111]dfsdfsdg[2222]
ssssaa[888]
[root@CentOS ~]# sed 's/][^][]+[/ /g;s/[^[]+[//;s/].*//' aa
aaa
bbb
111 2222
888