Bash は、置換と部分文字列抽出を 1 段階にまとめます。

Bash は、置換と部分文字列抽出を 1 段階にまとめます。

この形式の文字列の場合:

./my-site.sub.domain.com

.-およびを削除し、/残りの部分を16文字に切りたいと思います。mysitesubdomainc

私はすでにこれをしました

mysite="./my-site.sub.domain.com"
mysite=${mysite//[\.|\/|-]//}
mysite=${mysite:0:16}
echo $mysite
mysitesubdomainc

置換と部分文字列抽出を組み合わせる方法はありますか?

ベストアンサー1

Bash内蔵を接続する方法はありませんパラメータ拡張ただし、もちろん、これは外部ツールを使用して1行で実行できますsed。たとえば、次のようになります。

$ sed 's/[\.\/-]//g;s/^\(.\{16\}\).*/\1/' <<< "./my-site.sub.domain.com"
mysitesubdomainc

残念ながら、これはメンテナンスできないコードになり、Bash内部を使用するよりも効率が悪くなる可能性があるため、使用しないことをお勧めします。

おすすめ記事