У меня есть данные, которые выглядят так:
foo foo scaffold_7 1 4845 6422 4845
bar bar scaffold_7 -1 14689 16310 16310
Что я хочу сделать, это обработать вышеуказанные строки
где я просто хочу напечатать столбец 1,2,3, 7 и еще один столбец после 7-го.
Но с условием при печати колонки 7 и выше.
Ниже приведен мой awk-скрипт:
awk '{
if ($4=="+") { {end=$6-$5}{print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $7 "\t" end+$7} }
else
{end=$6-$5}{print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $7-end "\t" $7}
}'
Но почему он не достигает желаемого результата?
foo foo scaffold_7 1 4845 6422
bar bar scaffold_7 -1 14689 16310
Обратите внимание, что арифметика (например, $7-end
или end+$7
) является обязательной. Так что мы не можем просто поменять колонку
из входного файла. Кроме того, этот AWK будет внутри скрипта bash.