この質問はBashに関連しています。端末で実行される様子は次のとおりです。
url="http://user:[email protected]:80/"
echo $url | sed -e 's/[^/]*\/\/\([^@]*@\)\?\([^:/]*\).*/\2/'
ターミナル出力:example.com
次の問題を解決するには?
domain=$($url | sed -e 's/[^/]*\/\/\([^@]*@\)\?\([^:/]*\).*/\2/') # not working
echo $domain
答え1
パイプの左側は、stdoutに出力を生成する有効なシェルコマンドでなければなりません。 Bashでは、次のものも使用できます<<<
。
domain=$(sed -e 's/[^/]*\/\/\([^@]*@\)\?\([^:/]*\).*/\2/' <<< "$url")