Регистрация в Unix повторных строк претензий несортированных - PullRequest
0 голосов
/ 18 сентября 2018

2 csv файлы отсортированы по ключу.Файл 1 содержит 2 столбца, введите столбец 2. Файл 2 содержит несколько столбцов (я включаю только столбцы 1 и 2 здесь), а файл 2: столбец 1 повторяет ключ больше, чем файл 1 в столбце 2. Я хочу присоединиться к ним так,каждая строка из файла 1 повторяется в файле 2 независимо от того, сколько раз повторяется ключ.Join утверждает, что он не отсортирован - я проверил, файлы отсортированы, просто повторяющиеся элементы, очевидно, больше в одном файле, чем в другом.Любая помощь приветствуется!Спасибо!

Файл 1

Col1-Transcript Col2-GeneName
Transcript1 AATK
Transcript2 AATK

Файл 2

Col1-GeneName Col2-SecondaryInfo
AATK   A
AATK   B
AATK   C
AATK   D

Надеемся на вывод после присоединения (или что-то еще?)

Col1-GeneName Col2-GeneName Col3-Transcript Col4-SecondaryInfo
AATK   AATK   Transcript1   A
AATK   AATK   Transcript2   A
AATK   AATK   Transcript1   B
AATK   AATK   Transcript2   B
AATK   AATK   Transcript1   C
AATK   AATK   Transcript2   C
AATK   AATK   Transcript1   D
AATK   AATK   Transcript2   D

Кодиспользуется:

join -1 2 -2 1 -t , File1.csv File2.csv > Result1.csv

Ошибка: File1.csv не отсортирован File2.csv не отсортирован.

1 Ответ

0 голосов
/ 18 сентября 2018

Возможно, потому что заголовок "Col1-GeneName"> "AATK" лексически.

использует параметр --header.Кроме того, ваши данные не разделены запятыми:

$ join --header -1 2 -2 1  File1.csv File2.csv
Col2-GeneName Col1-Transcript Col2-SecondaryInfo
AATK Transcript1 A
AATK Transcript1 B
AATK Transcript1 C
AATK Transcript1 D
AATK Transcript2 A
AATK Transcript2 B
AATK Transcript2 C
AATK Transcript2 D

Если ваши данные фактически не отсортированы, сначала отсортируйте их.Предполагая, что ваша оболочка bash:

# function that reads stdin, prints the first line, then sorts the rest
sort_with_header() {
    IFS= read -r header
    echo "$header"
    sort
}

join --header -1 2 -2 1  <(sort_with_header <File1.csv) <(sort_with_header <File2.csv)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...