Tag: awk

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

У меня есть файл с шаблоном: n0 n1 n2 … ni ——————————- N0 N1 <empty line> если N0 меньше определенного числа, я хочу: 2 линии над линией N1 Линия N1 Пустая строка ниже линии N1 для отображения на выходе. Как это сделать с помощью awk или любой другой утилиты?

как изменить содержимое одного столбца в файле?

У меня есть файл, который выглядит примерно так: 1 mm10_rmsk exon 67108753 67108881 239.000000 + . gene_id "RLTR17B_Mm"; transcript_id "RLTR17B_Mm"; 1 mm10_rmsk exon 134217652 134217732 230.000000 – . gene_id "BC1_Mm"; transcript_id "BC1_Mm"; M mm10_rmsk exon 16776989 16779051 32159.000000 + . gene_id "L1_Mus1"; transcript_id "L1_Mus1"; M mm10_rmsk exon 33554409 33554640 216.000000 – . gene_id "B4"; transcript_id […]

Лучший способ применить формулу к определенному столбцу входного файла и передать все остальные столбцы как-есть

Я регулярно должен применять простые формулы для ввода данных в текстовой табличной форме. В начале я написал несколько небольших функций для каждого случая использования. Затем я переустановил «общий код» в функцию bash. Это хорошо работает, но кажется субоптимальным. Вот мое «старое решение», проходящее через все поля, проверяя / реагируя: calcc(){ awkcmd='{for (i=1;i<=NF;i++){if (i==col) printf "%s […]

Объединение столбцов из файлов, если они содержат совпадение в другом столбце

У меня два файла: fILE1.TXT 30 40 AT match1 string1 45 65 GR match2 string2 50 78 CY match3 string3 file2.txt match1 60 add1 50 add2 match2 15 add1 60 add2 match3 20 add1 45 add2 и я хочу получить результат, который выглядит так: 30 40 AT match1 string1 60 add1 45 65 GR match2 […]

Могу ли я получить доступ к массиву, созданному в одном скрипте awk в последующем скрипте awk?

У меня есть сценарий оболочки, где есть 2 строки awk. first_awk=' BEGIN { } { # create some array here.. } END{ } ' second_awk=' BEGIN { } { ## Access the array created in first awk section. } END{ } ' Можно ли сделать что-то вроде выше? Доступ к массиву, созданному в первом разделе […]

Awk, результат печати

Почему awk '{print 3 + 3}' не работает, но: echo 3|awk '{print $1 + 3}' делает? Не мог ли первый оператор просто вывести 6? Каков самый простой способ распечатать результат вычисления?

awk + как добавить список в файл

У меня есть следующий список в файле Больше file.ex efifc1a hygg4a hdy5d nhdw4s wesf3a fjfhyr jfhg gsfar как добавить второй список после первого списка и третьего списка после второго списка: efifc1a nhdw4s jfhg hygg4a wesf3a gsfar hdy5d fjfhyr

Отдельные «дублированные строки» по пустой строке

Мой вклад выглядит примерно так: fruit apple word fruit lemon fruit orange other word meat ham word vegetable salad other vegetable lettuce more Как я могу отделить повторяющиеся строки пустой строкой, основанной на первом слове? Как это: fruit apple word fruit lemon other word fruit orange word meat ham word vegetable salad other vegetable lettuce […]

Как заменить строки-заполнители в документе содержимым из файла

У меня есть два файла: A и B Файл A – это буква, как <@userid> ниже, которая содержит несколько строк-заполнителей в каждой строке, например <@userid> . <@U39RFF91U> for all the help in this project! Thanks for your help to enhance the data quality <@U2UNRTLBV> <@U39RFF91U> <@U2UQCN023>! Thanks for <@U38F4TBQ9> <@U38F5PQ73> <@U38F747CZ> <@U39RT0G07> and <@U2UQ17U20> 's […]

sed или awk для вставки вкладок (разделителей) в определенных положениях

Я пытаюсь разобрать таблицу с переменным числом разделителей для преобразования в таблицу равных столбцов: cluster=96\troot\tcellular organisms\tno_rank no_rank$ cluster=42\troot\tcellular organisms\tBacteria\tno_rank\tno_rank\tsuperkingdom$ cluster=362\troot\tcellular organisms\tBacteria\tProteobacteria\tno rank\tno rank\tsuperkingdom\tphylum$ cluster=12330\troot\tcellular organisms\tBacteria\tTerrabacteria\tFirmicutes\tClostridia\tClostridiales\tClostridiaceae\tClostridium\tno rank\tno rank\tsuperkingdom\tno rank\tphylum\tclass\torder\tfamily\tgenus$ Ожидаемый результат: cluster=96\troot\tcellular organisms\t\t\t\t\t\t\t\tno_rank\tno_rank\t\t\t\t\t\t\t$ cluster=42\troot\tcellular organisms\tBacteria\t\t\t\t\t\t\tno_rank\tno_rank\tsuperkingdom\t\t\t\t\t\t$ cluster=362\troot\tcellular organisms\tBacteria\tProteobacteria\t\t\t\t\t\tno rank\tno rank\tsuperkingdom\tphylum\t\t\t\t\t$ cluster=12330\troot\tcellular organisms\tBacteria\tTerrabacteria\tFirmicutes\tClostridia\tClostridiales\tClostridiaceae\tClostridium\tno rank\tno rank\tsuperkingdom\tno rank\tphylum\tclass\torder\tfamily\tgenus$ «\ t» – разделитель табуляции, а «$» – конец строки

Linux и Unix - лучшая ОС в мире.