Я хочу сравнить вторую колонку (с разделителями с пробелом) в file1:Сравнение столбцов в двух текстовых файлах и спичечные линиях
n01443537/n01443537_481.JPEG n01443537
n01629819/n01629819_420.JPEG n01629819
n02883205/n02883205_461.JPEG n02883205
Со второй колонки (отделенной от пробела) в file2:
val_8447.JPEG n09256479
val_68.JPEG n01443537
val_1054.JPEG n01629819
val_1542.JPEG n02883205
val_8480.JPEG n03089624
Если есть совпадение, я хотел бы распечатать соответствующую строку файла2.
Желаемая выход в этом примере:
val_68.JPEG n01443537
val_1054.JPEG n01629819
val_1542.JPEG n02883205
Я попытался следующие, но выходной файл пуст:
awk -F' ' 'NR==FNR{c[$2]++;next};c[$2] > 0' file1.txt file2.txt > file3.txt
попытался также, но результат был тот же (пустой выходной файл):
awk 'NR==FNR{a[$2];next}$2 in a' file1 file2 > file3.txt
Хмм ... мой выход по-прежнему остается пустым, к сожалению. Я думаю, проблема может быть в моих исходных файлах. Как я могу проверить, действительно ли столбцы ограничены одним пробелом в каждой строке? Я уверен, что они есть, но, возможно, я могу проверить, чтобы быть уверенным. –
Вы можете запустить 'cat -vte' в обоих файлах и проверить, какие символы присутствуют (это может быть связано с завершением строки DOS) – anubhava
Мы можем быть здесь. Для file1 я получаю '$' добавленную к каждой строке. Для file2 я получаю '^ M $ 'добавленный к каждой строке. –