Если у вас есть awk
инструмент командной строки.
awk 'BEGIN{FS="."} NF==3{$0=substr($0, length($1)+2)}1' input.txt
Входной файл input.txt
:
google.de
spiegel.de
sub1.google.de
zeit.de
sub1.spiegel.de
Выход:
google.de
spiegel.de
google.de
zeit.de
spiegel.de
Надеюсь, это то, что вы хотели.
Сценарий объяснения:
BEGIN{FS="."} # set input line field separator to .
NF==3{$0 = substr($0, length($1)+2)} # if input line has 3 fields, Remove the first field
1 # output modified line
Для более общего случая, когда существует более 3 квалификаторов домена.
BEGIN{FS=OFS="."} # set input line field separator to .
NF > 2{ # if there are more than 2 input fields
while(NF > 2) $0 =substr($0, length($1)+2); #remove the first field from input line
}
1 # output modified line