Почему я не могу присоединиться к этим двум файлам в Ubuntu? - PullRequest
0 голосов
/ 07 декабря 2018

Это два файла, к которым я хотел бы присоединиться. Эти два файла (один из них .txt, а другой .tsv)

Файл 1 (файл .txt): имеет два столбца

string_1  abc...
string_2  bcd...
string_3  cde...

Файл 2 (файл .tsv): имеет два столбца

string_1  X...
string_2  Y...
string_3  Z...

Я использовал этот оператор linux для объединения файлов из командной строки:

join -j 2 -o 1.1, 1.2, 1.3, 2.1 file.txt file.tsv

Но я понялсообщение об ошибке при выполнении:

join: invalid file number in field spec: ‘’

1 Ответ

0 голосов
/ 07 декабря 2018

Похоже, здесь есть несколько проблем.

Во-первых, вы запрашиваете объединение для объединения файлов, используя поле 2 (-j 2), но из ваших входных данных это выглядит так, как будто вы действительно хотите присоединитьсяв поле 1. Если я беру ваш пример ввода и запускаю:

join -j 2 file1.txt file2.txt

, я не получу вывод, потому что нет соединяемых линий.Сравните это с результатом выполнения:

join file1.txt file2.txt

Что приводит к:

string_1 abc... X...
string_2 bcd... Y...
string_3 cde... Z...

Далее, ваши аргументы -o выглядят неверно.Опция -o ожидает один аргумент без пробелов, как в:

-o 1.1,1.2,1.3,2,1

И если мы используем это, мы получим:

$ join -o '1.1,1.2,1.3,2.1' file1.txt  file2.txt
string_1 abc...  string_1
string_2 bcd...  string_2
string_3 cde...  string_3

Но этот аргумент все еще выглядит неправильно, потому что ваши входные файлы имеют только два столбца, и вы пытаетесь сослаться на третий столбец в первом файле (1.3).А поскольку поле 1 является общим полем между двумя входами, на самом деле не имеет смысла включать столбец 2.1 в вывод (так как он будет идентичен 1.1).Это дает нам:

$ join -o '1.1,1.2,2.2' file1.txt  file2.txt
string_1 abc... X...
string_2 bcd... Y...
string_3 cde... Z...

Именно это мы и получим, просто запустив join file1.txt file2.txt без аргументов.

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