$ 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
Инвертируйте каждую строку, затем используйте cut
для выбора всех полей, кроме первых двух, а затем снова инвертируйте вывод
Вы также можете использовать perl
, но вы будете печатать пустые строки, если любая строка ввода имеет менее 3 полей
$ perl -F'-' -lane 'print join "-", @F[0..$#F-2]' ip.txt
foo-11.11-fo.o
bar-foo
Укажите -
в качестве разделителя ввода, а затем распечатайте все поля, кроме двух последних