使用 awk 或 sed 删除顶级域 (TLD) 和二级域 (SLD)

xor*_*eed -6 shell sed awk text-processing domain

我在文本文件中有一个没有子域的域列表。我需要删除 TLD 和 SLD。

输入

google.uk
example.com
amazon.co.uk
domain.ca.uk
education.edu.it
Run Code Online (Sandbox Code Playgroud)

预期输出:

google
example
amazon
domain
education
Run Code Online (Sandbox Code Playgroud)

xor*_*eed 5

我找到了我自己问题的答案。原来很简单

awk -F. '{print $1}' input_file
Run Code Online (Sandbox Code Playgroud)
  • 我用 '。' 用“-F”作为分隔符。像这样我将 SLD 和 TLD 放在 $2 和/或 $3 列中

  • 使用“{print $1}”我只打印第一列中的文本,这是我需要的输出


Ed *_*ton 5

为此,您不需要 awk 或 sed,这是cut存在的工作:

$ cut -d'.' -f1 file
google
example
amazon
domain
education
Run Code Online (Sandbox Code Playgroud)