Как я могу объединить информацию о трех файлах, чтобы создать четвертый?

Можете ли вы убедиться, что у вас нет пакетов Epel-Release, оставленные, оставленные, перечислив все пакеты и гребли EPEL?

rpm -qa | grep epel

Если в этом списке нет пакета, вы также можете заставить установить EPEL- Пакет выпуска бегом:

rpm -ivh --force epel-release-6-8.noarch.rpm
1
25.05.2015, 11:05
1 ответ

Ну, это взлом, но в любом случае:

Давайте использовать file3 и file2 и разрешить группы в промежуточный файл разрешили примерно так:

awk '
    FNR == NR {
        group = $1
        $1 = ""
        groups[group] = $0
    }
    FNR != NR {
        for (i = 2; i <= NF; i++) {
            print $i" "groups[$1]
        }
    }
' <(tail -n+2 file3) file2 > resolved

to:

$ cat resolved
rs009  1 3 3 3
rs103  1 3 3 3
rs591  3 3 2 3
rs112  3 3 2 3
rs004  3 3 2 3

, а затем используйте resolved , чтобы объединить его с file1 с:

awk '
    FNR == NR {
        group = $1;
        for (i = 2; i <= NF; i++) {
            groups[group][i] = $i
        }
    }
    FNR != NR {
        if ($1 in groups) {
            group = $1
        }
        for (i = 2; i <= NF; i++) {
            if (groups[group][i] != 3) {
                $i = 0
            }
        }
        print
    }

' resolved <(tail -n+2 file1)

], который производит:

rs009 0 T A A
rs888 0 T T T
rs103 0 C C C
rs591 A A 0 A
rs112 A A 0 A
rs004 C C 0 C

Использование столбца и добавление заголовка обратно, и все в порядке.

0
28.01.2020, 01:40

Теги

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