Как мне организовать чтение двух текстовых файлов с помощью bash? - PullRequest
0 голосов
/ 19 июня 2019

У меня есть два текстовых файла текста

кошка A.txt

10,1,1,"ABC"
10,1,2,"ABC"
10,1,3,"baba"
10,2,1,"asd"
10,2,2,"dkkd"

кошка B.txt

10,1,2,"S1"
10,2,1,"S2"
10,2,2,"S3"

Я хочу, чтобы содержимое файла B.txt отображалось над соответствием из A.txt Здесь мне нужно сравнить три числа, разделенные запятыми. скажем, (10,1,2) из ​​A.txt и (10,1,2) из ​​B.txt, если они найдены равными, то это добавляет к выше Как мне получить этот вывод и сохранить в другой файл, используя bash

10,1,1,"ABC"
10,1,2,"S1"
10,1,2,"ABC"
10,1,3,"baba"
10,2,1,"S2"
10,2,1,"asd"
10,2,2,"S3"
10,2,2,"dkkd"

1 Ответ

3 голосов
/ 19 июня 2019

Просто отсортируйте файлы, используя первые три поля. Поскольку вы предпочитаете строки от B.txt перед A.txt, я использовал опцию -s, --stable, чтобы отключить сортировку в крайнем случае, надеясь на sort, чтобы выбрать первую строку, которую он читает. Поэтому, указав первый файл B.txt, я надеюсь, что он поместит B.txt строк впереди.

sort -s -t, -k1,3 B.txt A.txt

выведет:

10,1,1,"ABC"
10,1,2,"S1"
10,1,2,"ABC"
10,1,3,"baba"
10,2,1,"S2"
10,2,1,"asd"
10,2,2,"S3"
10,2,2,"dkkd"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...