Команды для удаления десятичных знаков выборочно - PullRequest
0 голосов
/ 26 августа 2018

У меня есть список с идентификаторами генов с числовыми атрибутами следующим образом:

Входной файл:

Solyc02g080080.3.1 Solyc02g082880.2.1 0.935486990245651 0.00610864337672501
Solyc02g079533.1.1 Solyc02g082880.2.1 0.929128021921794 0.00735626670839373
Solyc02g080670.3.1 Solyc02g082880.2.1 0.973014871168575 0.00108247051974075

Я хочу удалить «.»из первых двух столбцов, не нарушая последние два столбца

Вывод:

Solyc02g080080 Solyc02g082880 0.935486990245651 0.00610864337672501
Solyc02g079533 Solyc02g082880 0.929128021921794 0.00735626670839373
Solyc02g080670 Solyc02g082880 0.973014871168575 0.00108247051974075

Я пытался использовать: awk -F. '{print $1}' file

, но при этом печатается только первыйколонка.Любое предложение с благодарностью.Спасибо

Ответы [ 2 ]

0 голосов
/ 26 августа 2018
$ awk '{for (i=1;i<=2;i++) sub(/\..*/,"",$i)} 1' file
Solyc02g080080 Solyc02g082880 0.935486990245651 0.00610864337672501
Solyc02g079533 Solyc02g082880 0.929128021921794 0.00735626670839373
Solyc02g080670 Solyc02g082880 0.973014871168575 0.00108247051974075
0 голосов
/ 26 августа 2018
awk '{
  sub(/\..*/, "", $1)
  sub(/\..*/, "", $2)
  print
}' input.file

В качестве побочного эффекта он объединяет повторяющиеся разделители в один.Например,

Solyc02g080080.3.1 Solyc02g082880.2.1  0.935486990245651   0.00610864337672501

будет

Solyc02g080080 Solyc02g082880 0.935486990245651 0.00610864337672501
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...