Предполагая, что файл delete.txt состоит только из одной строки, мы можем получить нужные столбцы, используя следующий код:
$ perl -psale '$. == 1 and
@indices2P = grep { my $c=$_+1; $d !~ /\b$c\b/ } 0.. $#F;
$_ = "@F[@indices2P]";
' -- -d="$(< delete.txt)" mat.txt
Результаты:
0 0.000532 0.000465
0 1 -0.1146
0 0.0000967 -0.9972
Пояснение:
Сохраните удаляемые столбцы в скалярной переменной $d
и в самой первой строке чтения файла mat.txt
вычислите индексы столбцов, которые необходимо распечатать.
Затем применяйте только эти индексы при доступе к массиву @F
для печати.