Как объединить разные строки файлов?

Какой самый быстрый способ командной строки для объединения различных строк файлов? Например, у меня есть два файла:

a.txt:

foo bar foobar 

b.txt

 foo foobar line by bar 

И я хотел бы получить следующий вывод:

 foo bar foobar line by 

Есть ли быстрый способ объединить файлы, как в примере выше? (Порядок строк не важен)

    Используйте awk seen если вы не хотите сортировать файл:

     $ awk '!seen[$0]++' a.txt b.txt foo bar foobar line by 
     $ sort -u a.txt b.txt bar by foo foobar line 

    Это позволит отсортировать (объединенное) содержимое двух файлов, удалив дублирующиеся строки. Недостатком является то, что если строка дублируется в одном из файлов, это также будет удалено.

    Чтобы записать результат в c.txt , используйте

     sort -u -o c.txt a.txt b.txt 

    или стандартное redirect

     sort -u a.txt b.txt >c.txt 

    Исходя из вашего желаемого результата, я предполагаю, что вы просто хотите, чтобы оба файла были объединены только с уникальными строками.

    В этом случае cat , sort и uniq могут сделать это для вас:

     cat a.txt b.txt | sort | uniq > c.txt 

    cat открывает содержимое обоих файлов

    sort сортирует вывод по алфавиту

    uniq перечисляет только уникальные строки

    > c.txt помещает весь вывод в новый файл c.txt