@HexUserHex

Вывести в bash только дубликаты строк из файлов?

Здраствуйте,
требуется вывести из двух файлов только строки которые имеются в обоих файлах

Пример содержимого файлов:
cat 1.txt 
11
22
33
33

cat 2.txt 
33
11
44


вот как пробую, в результате получаю только 33, в каталоге содержится только два .txt файла:
cat *.txt | uniq -d
33

подскажите что пропустил....
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
hydrugz
@hydrugz
реклама
подскажите что пропустил

sort?
$ cat *.txt | uniq -d
33
$ cat *.txt | sort | uniq -d
11
33

Можно ещё comm -12 <(sort 1.txt) <(sort 2.txt)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
sort <(sort -u 1.txt) <(sort -u 2.txt) |uniq -d
Ответ написан
trapwalker
@trapwalker
Программист, энтузиаст
Я бы предложил еще решение вроде такого:
py "set(open('1'))&set(open('2'))"
Но это уже скорее на питоне решение, а py в стандартном наборе не посавляется из коробки.
Кроме того, это решение не эффективно при больших файлах.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы