AWK:URLを複数の部分に分割して印刷します。

AWK:URLを複数の部分に分割して印刷します。

私には2つのことがあります

http://www.example.com:8888/index.php

http://home.example.com:8888/index.phphome何でも構いませんがwww

そしてこれを得たいと思います:

example.com

home.example.com

1年後にどのように機能するかを理解できるように、読みやすい方法で行うことをお勧めします。

私の試みは次のとおりです。

echo http://www.example.com:8888/index.php | awk -F[/:\'www\'] '{print $7}'

しかし、結果は

.example.com(注意)www.example.comに適用する場合

home.example.com使用できる場合は、print $4どちらの場合も同じ印刷句を使用することをお勧めします。

ありがとうございます。

ベストアンサー1

sed解決策:

sed -E 's~http://(www\.)?([^:]+).*~\2~' file
  • ~-sedサブコマンド区切り文字として扱われます。
  • -E- 拡張正規表現を許可
  • (www\.)?- オプションwww.部品の一致
  • ([^:]+)- 以下を除くすべての文字シーケンスと一致します。:

出力:

example.com
home.example.com

おすすめ記事