как отделить поле одного столбца в bash? - PullRequest
0 голосов
/ 05 октября 2018

У меня есть следующий файл с разделителями табуляции:

1 1 0 0 2 -9 BB A A B A B ...
2 2 0 0 2 -9 AA B B A B A ...
3 3 0 0 2 -9 AB B A B A B ...

Как видите, генотипы в 7-м столбце не были разделены.Мне нужен следующий файл с разделителями табуляции:

1 1 0 0 2 -9 B B A A B A B ...
2 2 0 0 2 -9 A A B B A B A ...
3 3 0 0 2 -9 A B B A B A B ...

Я попробовал следующую команду:

perl -ne '
   ($id, $tmp) = split( / /, $_, 2 );
   $tmp =~ s/ //g;
   print "$id ";
   print join(" ", split( //, $tmp ) );
' ped1 > ped2

У кого-нибудь есть решение?

1 Ответ

0 голосов
/ 05 октября 2018

Если ответ на вопрос в моем комментарии - да, попробуйте это:

awk -v FS="\t" -v OFS="\t" '{ sub(/^./, "&\t", $7); print }' ped1 > ped2

Редактировать:

Версия Perl:

perl -F"\t" -lanE 'BEGIN { $, = "\t" } $F[6] =~ s/^(.)/$1\t/; say @F' ped1 > ped2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...