Я столкнулся с проблемой, которая превосходит мои базовые знания в области unix и была бы очень признательна за помощь. У меня есть большой файл в следующем формате:Команда LINUX AWK для большого файла
chr1 10495 10499 211
chr1 10496 10500 1
chr1 10587 10591 93
chr1 10588 10592 1
chr1 10639 10643 4
chr1 10668 10672 11
chr1 10697 10701 13
chr1 10726 10730 8
chr1 10755 10759 7
chr1 10784 10788 5
chr2 10856 10860 4
chr3 10932 10936 6
chr3 10933 10937 2
chr5 11056 11060 4
chr6 11155 11159 9
Если значения в столбце один матч и один разница число в колонке два, я хочу суммировать значения в колонке 4 обеих линий и заменить значение столбца 3 в строке 1 со значением столбца 3 в строке 2, иначе просто значения в уникальной строке без изменения любого столбца.
Так что выход я надеюсь на будет выглядеть следующим образом:
chr1 10495 10500 212
chr1 10587 10592 94
chr1 10639 10643 4
chr1 10668 10672 11
chr1 10697 10701 13
chr1 10726 10730 8
chr1 10755 10759 7
chr1 10784 10788 5
chr2 10856 10860 4
chr3 10932 10937 8
chr5 11056 11060 4
chr6 11155 11159 9
ли общие ценности в column1 всегда группируются вместе и значение в colum2 всегда возрастает, как показано в вашем примере ввода? Можете ли вы иметь 3 последовательных номера в столбце2? Если это так, пожалуйста, отредактируйте свой вопрос, чтобы включить его в свой образец ввода/вывода, чтобы мы могли видеть, как вы его обрабатываете. В любом случае ответ будет awk-скриптом - получите книгу «Эффективное программирование Awk», 4-е издание, Арнольд Роббинс, чтобы узнать, как манипулировать текстом в UNIX. –
Что вы делаете с суммой значений в столбце 4? –
Hi Morton, Да, общие значения в столбце 1 всегда группируются вместе, а значения в столбце2 всегда возрастают, потому что я сортировал. В колонке 2 всего 2 последовательных номера. – learner