Как найти одинаковые строки из следующего списка - PullRequest
0 голосов
/ 04 февраля 2011
 id="9IQo3oW38p4"
 id="1Ly3_5YdbOA"
 id="peH5Yw7R66Q"
 id="pjGL5ZJ878w"
 id="OjEKoXBZf7w"

У нас есть несколько таких идентификаторов в определенном файле, и некоторые из них идентичны, и мы хотели бы как-то перечислить все идентичные строки. Как мы должны это сделать?

Ответы [ 3 ]

5 голосов
/ 04 февраля 2011
cat yourFileWithTheLines | sort | uniq -d

более короткая версия:

sort -u yourFileWithTheLines

Спасибо @pooh за то, что со мной это выяснили; -)

2 голосов
/ 04 февраля 2011

Ты должен быть человеком, уникальным

sort file | uniq -d
1 голос
/ 04 февраля 2011

В качестве альтернативы вы можете загрузить его в таблицу SQLite с индексом.

./sqlite3 my_database.db
> CREATE TABLE lines(line TEXT);
> CREATE INDEX i_line ON lines (line ASC);
> -- @ is not in our file
> .separator @
> .import '/home/me/my_file.txt' lines
> .output '/home/me/my_duplicates.txt'
> SELECT line FROM lines GROUP BY line HAVING COUNT(*) > 1;
> .q

Таким образом, у вас все еще есть база данных и индекс, запросить его во второй раз для другой вещи может быть более эффективным, чем анализэто снова с sort + uniq.

...