使用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之間的空格是用\轉義的。

 

每個括號代表一個變量。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM