bash скрипт для массового изменения размера с помощью Imagemagick

С perl

$ perl -F'\s+|/' -lape '
     s/^(\S+\s+){4}\K.*/$&=~s|$F[2]|$F[1]|gr/e;
     s/^(\S+\s+){4}\K.*/$&=~s|[RYSWKM]|$F[2]|gr/e
  ' ip.txt
rs#    alleles  chro    pos    ind1 ind2 ind3 ind4 ind5 ind6. . 
mar_1   G/T     1       2386806 G    G    G    G   T    G    
mar_2   T/G     1       2386848 T    T    T    G   T    G
mar_3   G/T     1       2387553 G    T    G    T   G    G
mar_4   G/A     1       2564608 G    G    G    N   A    G
mar_5   C/T     1       2564616 C    T    C    T   C    N
  • -F '\ s + | /' разделить строку ввода на пробелы или символ / , сохраненный в ] @F массив
  • ^ (\ S + \ s +) {4} \ K. * получит все столбцы, кроме первых четырех
  • $ & = ~ s | $ F [2] | $ F [1] в совпавшей части (столбцы, кроме первых четырех) выполнить другую замену
    • $ F [2] будет содержать символ после / и $ F [1] будет содержать символ перед /
  • Модификатор] r возвращает последнюю заменяемую строку, а модификатор e позволяет использовать код Perl в разделе замены
  • Поскольку тот же шаблон используется снова, вторая подстановка также может быть сокращена до s // $ & = ~ s | [RYSWKM] | $ F [2] | gr / e
  • См. переключатели команд для объяснения -lape параметров

1
26.12.2015, 14:27
0 ответов

Теги

Похожие вопросы