$ cat ip.txt
foo-11.11-fo.o-foo-bar
bar-foo-11.11-22.11
$ rev ip.txt
rab-oof-o.of-11.11-oof
11.22-11.11-oof-rab
$ rev ip.txt | cut -d- -f3- | rev
foo-11.11-fo.o
bar-foo
Inverte cada linha, depois use cut
para selecionar todos os campos, exceto os dois primeiros, e depois inverta a saída novamente
Você também pode usar perl
, mas imprimirá linhas vazias se qualquer linha de entrada tiver menos de 3 campos
$ perl -F'-' -lane 'print join "-", @F[0..$#F-2]' ip.txt
foo-11.11-fo.o
bar-foo
Especifique -
como delimitador de entrada e, em seguida, imprima todos os dois últimos campos, exceto