У меня есть два файла с разделителями табуляции. Мне нужно сравнить файл 1 столбец 3 с файлом 2 столбец 1. Если есть совпадение, мне нужно написать столбец 2 файла 2 рядом с соответствующей строкой в файле 1.here образец моего файла:python или awk, сравнивающие файлы
файла 1:
a rao rocky1 beta
b rao buzzy2 beta
c Rachel rocky2 alpha
файл 2:
rocky1 highlightpath
rimper2 darkenpath
rocky2 greenpath
выход:
новый файл:
a rao rocky1 beta highlightpath
b rao buzzy2 beta
c Rachel rocky2 alpha greenpath
проблема в файле 1 огромна! файл 2 также большой, но не так много. До сих пор я пробовал команду awk, она работала частично. я имею в виду количество строк в файле 1 и выходной файл, который является новым файлом, должен быть таким же, а это не то, что я получил! Я получаю разницу в 20 строк.
awk 'FNR==NR{a[$3]=$0;next}{if($1 in a){p=$1;$1="";print a[p],$0}}' file1 file2 > newfile
Так я думал, что я мог бы попробовать питон, чтобы сделать это, но я новичок в Python. Все, что я знаю до сих пор, я хотел бы сделать словарь для файла 1 и файла 2 и сравнить. Я знаю, как читать файл в словаре, а затем я пустой. Любая помощь и предложение с кодом помогут. Благодаря
@ user2464553 Я видел ваш комментарий. Если вы получаете индексную ошибку, это означает, что некоторые из строк в FILE1 имеют меньше полей, чем вы думаете: 'split()' возвращает список, а '[2]' пытается получить 3-й элемент списка. Просто добавьте некоторую условную логику для обработки этой ситуации. – FMc
Хорошо спасибо FMc! Попробуем это :) Спасибо за вашу помощь :) – user2464553