awk для добавления текста в файл на основе координат

Когда вы cat сценарий для bash, код для выполнения - , поступающий со стандартного ввода .

Откуда читается read? Правильно также стандартный ввод. Вот почему вы можете вводить cat в программы, принимающие стандартный ввод (например, sed, awk и т. Д.).

Таким образом, вы не используете «сценарий», если вы сделай это. Вы используете ряд строк ввода.

Где вы хотите read прочитать данные из этой настройки?

Вы можете это сделать вручную (если вы можете определить такую место). В качестве альтернативы вы можете остановить запуск своего скрипта следующим образом.

0
задан cm0728 16 January 2019 в 13:23
поделиться

1 ответ

ИМХО, ваш показанный конечный результат НЕ выглядит корректно по логике, поскольку Input_file2 имеет несколько записей, а Input_file1 имеет только одиночные (я собираюсь только на показанных примерах). Не могли бы вы проверить это один раз? Если какие-либо изменения в вашем выводе или логике, то, пожалуйста, упомяните их четко.

awk '
BEGIN{
  SUBSEP=","
}
FNR==NR{
  max[$1,$NF]=$3
  min[$1,$NF]=$2
  next
}
{
  split($4,array,"_")
}
(($1,array[1]) in max){
  if(($2>min[array[5],array[1]] && $2<max[array[5],array[1]]) || ($3>max[array[5],array[1]] && $3<max[array[5],array[1]])){
     print array[5],array[1],min[array[5],array[1]],max[array[5],array[1]],"exon"
     next
  }
}
{
  print [110],"intron"
}'  Input_file1   Input_file2  | column -t

Что эта команда делает, это проверяет 2-е поле Input_file2 ИЛИ 3-е поле, либо они находятся в диапазоне 2-го и 3-го поля Input_file1. Если кто-то из них приходит, я печатаю вывод Input_file1, добавляя в него exon, или выводя вывод Input_file2, добавляя в конце intron строку.

0
ответ дан RavinderSingh13 16 January 2019 в 13:23
поделиться
Другие вопросы по тегам:

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