使用 awk 或 sed 删除子域

xor*_*eed 0 shell sed awk domain

如何删除文本文件中的所有子域?我想我需要删除之前的所有内容,包括“.”?

输入:

unix.stackexchange.com
www.example.org
example.example.tld
Run Code Online (Sandbox Code Playgroud)

预期输出:

stackexchange.com
example.org
example.tld
Run Code Online (Sandbox Code Playgroud)

编辑:

没有子域的域应该保持不变。仅当完整域具有子域时才应触及。换句话说,两个或更多“.”。

google.com 必须保留 google.com 输入:

google.com
mail.google.com
Run Code Online (Sandbox Code Playgroud)

预期输出:

google.com
google.com
Run Code Online (Sandbox Code Playgroud)

小智 5

如果您想删除第一个子域:

cut -d . -f 2- input
Run Code Online (Sandbox Code Playgroud)

如果您有多个级别的子域,sub2.sub1.domain.com您可以cut结合使用 来rev保留域的最后两个元素:

rev input | cut -d . -f -2 |  rev
Run Code Online (Sandbox Code Playgroud)

  • @xorghelpneed cut 会更快,而且更便携。 (3认同)