Как выровнять два столбца с пустыми местами?

Сценарий, который выполняется без явного интерпретатора, должен быть исполняемым и иметь правильную строку #!-.

Если строки#!-нет или она не является исполняемой, необходимо выполнить скрипт с помощью интерпретатора, как в

sh /path/to/script.sh

Вы также должны проверить код возврата из execl(), чтобы убедиться, что вызов не удался. Если это не удалось, вы можете использовать perror()для печати сообщения об ошибке. См. руководство для perrorвашей системы.

0
29.10.2019, 19:28
2 ответа

Сawk:

awk '$9==""{next}        # skip if $9 is empty
{
  id=substr($9,4,11)     # get the id
  name=""                # set empty name as default
  idx=index($9,"Name=")  # get index of `Name=`
  if (idx){              # if index is not zero
    name=substr($9,idx)  # substring name from idx
    sub(/;.*/,"",name)   # and remove `;` and everything after
  }
  print "Symbols "id" correspond to "name
}' PMZ_genes.gff3.txt

Выход:

Symbols PMZ_0036570 correspond to Name=Slc6a18
Symbols PMZ_0036570 correspond to Name=Slc6a18
Symbols PMZ_0036570 correspond to
Symbols PMZ_0036570 correspond to
Symbols PMZ_0036570 correspond to
Symbols PMZ_0036570 correspond to
Symbols PMZ_0041002 correspond to Name=Shh
Symbols PMZ_0041002 correspond to Name=Shh
Symbols PMZ_0041002 correspond to
Symbols PMZ_0041002 correspond to
Symbols PMZ_0041002 correspond to
Symbols PMZ_0041002 correspond to
Symbols PMZ_0041002 correspond to
Symbols PMZ_0041002 correspond to
Symbols PMZ_0041003 correspond to Name=SHH
Symbols PMZ_0041003 correspond to Name=SHH
Symbols PMZ_0041003 correspond to
Symbols PMZ_0041003 correspond to
Symbols PMZ_0041003 correspond to
Symbols PMZ_0041003 correspond to
Symbols PMZ_0041003 correspond to
Symbols PMZ_0041003 correspond to
Symbols PMZ_0036800 correspond to Name=SLC6A19
Symbols PMZ_0036800 correspond to Name=SLC6A19
Symbols PMZ_0036800 correspond to
Symbols PMZ_0036800 correspond to
Symbols PMZ_0036800 correspond to
Symbols PMZ_0036800 correspond to
Symbols PMZ_0036800 correspond to
Symbols PMZ_0036800 correspond to
Symbols PMZ_0036800 correspond to
Symbols PMZ_0036800 correspond to
Symbols PMZ_0033056 correspond to Name=cut14
Symbols PMZ_0033056 correspond to Name=cut14
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0033056 correspond to
Symbols PMZ_0048065 correspond to Name=CUTC
Symbols PMZ_0048065 correspond to Name=CUTC
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
Symbols PMZ_0048065 correspond to
1
28.01.2020, 02:39

Альтернатива awk

awk '{
  for (i=1; i<=NF; i++)
  if ($i ~ /ID=PMZ_/) printf "Symbols %s correspond to ", substr($i,4);
    else if ($i ~ /Name=/) printf $i;}{i=NF;printf "\n";
}' <(sed "s/[;-]/ /g" file)
0
28.01.2020, 02:39

Теги

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