我基本上是想提取從URL到不同的使用環境變量後的部分,所以我期待着能夠做這樣的事情:如何從Bash中的正則表達式提取多個環境變量?
echo "my-app.domain.com:8080" | \
sed -r 's/((\w+)\.)?(\w+\.\w+)(\:(\d+))?/\2\n\3\n\5/g' | \
read SUBDOMAIN DOMAIN PORT
然而,這似乎並沒有工作(和某些原因「:」從端口始終輸出「\ 5」):
sh-4.2# echo "my-app.domain.com:8080" | \
sed -r 's/((\w+)\.)?(\w+\.\w+)(\:(\d+))?/\2\n\3\n\5/g'
my-app
domain.com
:8080
什麼是更奇怪,我是,如果我打印後的\ 5新線,這將是輸出:
sh-4.2# echo "my-app.domain.com:8080" | sed -r 's/((\w+)\.)?(\w+\.\w+)(\:(\d+))?/\2\n\3\n\5\n/g'
my-app
domain.com
:8080
在任何情況下,當使用read時,沒有一個變量被設置...似乎我正在做一些錯誤的事情,但我無法準確地發現問題。
這就是...美麗 – dukeofgaming