使用sed获取字符串中指定的内容

字符串:abcde --socket=/data/mysql/mysql.sock --port=3306 --datadir=/data/mysql abcde

我要获取其中的端口

echo 'abcde --socket=/data/mysql/mysql.sock --port=3306 --datadir=/data/mysql abcde' | sed -r 's/.*--port=([0-9]{1,}).*/\1/'

其中\1代表的就是括号里的端口。

 

我要获取其中的socket和端口

echo 'abcde --socket=/data/mysql/mysql.sock --port=3306 --datadir=/data/mysql abcde' | sed -r 's/.*--socket=([a-z|\/|\.]{1,}).*--port=([0-9]{1,}).*/\1\ \2/'

其中\1代表的就是socket路径,\2代表的就是端口号。其中\1和\2之间的空格是用\转义的。

 

每个括号代表一个变量。

 

posted @ 2020-10-15 10:37  道霖  阅读(4182)  评论(0编辑  收藏  举报