В xterm(mintty, bash) как открыть файл в существующем процессе vim?

perl -lane '$,="\t";
   !@ARGV and $. == 1 and print($_, qw/Id/x2),next;
   $h{$F[1],$F[2]}->[@ARGV] = $F[3];
   !@ARGV and print $_, map { $h{$F[1],$F[2]}->[$_] // q/NA/ } 1..2;
   $. = 0 if eof;
' file3 file2 file1

Результаты

chr    start   end     Id       Id      Id
 chr1   1       400     SN_1    NA      NA
 chr1   401     800     SN_2    SN_2    NA
 chr1   801     1200    SN_3    SN_3    NA
 chr1   1201    1600    SN_4    SN_4    SN_4
 chr1   1601    2000    SN_5    NA      SN_5
 chr1   2001    2400    SN_6    NA      SN_6
 chr1   2401    2800    SN_7    NA      NA

Работа

  • Порядок ввода: dataframe3, dataframe2 и dataframe1.
  • Предполагая, что все четвертые столбцы dataframe1 заполнены, IOW, ни один из них не пропущен.
  • Мы вызываем Perl в режиме чтения строк + авторазбиения: perl -lane
  • Во время чтения 3-го кадра @ARGV имеет 2 элемента, во время 2-го кадра читается в нем 1 элемент, и 0 во время 3-го кадра.
  • Мы заполняем хеш, %h, ключами которого являются 2-е и 3-е поля, $F[1],$F[2], а значения являются ссылками на анонимные массивы. , отсюда и название: $h{...}[...].
  • Во время 1-го фрейма данных (@ARGV с 0 элементами) мы печатаем каждую строку с содержимым 1-го фрейма данных и определяем, существуют ли элементы массива или нет для 2-го/3-го фреймов для соответствующие текущие 2-е/3-е поля.
0
17.01.2016, 02:37
0 ответов

Теги

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