文字列操作を使用して文字列の2つの異なる部分を検出して削除する方法は?

文字列操作を使用して文字列の2つの異なる部分を検出して削除する方法は?

URLからhttp://またはhttps://を削除するスクリプトを作成しています。これまでhttp://を削除しましたが、その中に入れたすべてを削除するように修正する方法がわからないようです。これまでのコードは次のとおりです。

domain=$1

inp="${domain//http:'//'}"

echo "$inp"

次のコードが必要です。

domain=$1

inp="${domain//http:'//'} OR ${domain//https:'//'}"

echo "$inp"

どうすればいいですか?

ベストアンサー1

2回実行することを除いて:

拡張グローブを使用してください。

shopt -s extglob
v=${domain#http?(s)://}
printf "%s\n" "$v"

Bash内部変数を使用してくださいBASH_REMATCH

要件契約:

if [[ "$domain" =~ https?://(.*) ]]
then
    printf "%s\n" "${BASH_REMATCH[1]}"
else
    printf "Not valid input: '%s'\n" "$domain"
fi

同意は必要ありません。

[[ "$domain" =~ (https?://)?(.*) ]] && v="${BASH_REMATCH[2]}"
printf "%s\n" "$v"

おすすめ記事