如何从以下列表中找到相同的行

时间:2011-02-04 10:05:25

标签: regex sed grep

 id="9IQo3oW38p4"
 id="1Ly3_5YdbOA"
 id="peH5Yw7R66Q"
 id="pjGL5ZJ878w"
 id="OjEKoXBZf7w"

我们在某个文件中有几个这样的id,其中一些是相同的,我们想以某种方式列出所有相同的行。我们该怎么做?

3 个答案:

答案 0 :(得分:5)

cat yourFileWithTheLines | sort | uniq -d

更短的版本:

sort -u yourFileWithTheLines

感谢@pooh向我提出这个问题; - )

答案 1 :(得分:2)

你应该男人uniq

sort file | uniq -d

答案 2 :(得分:1)

或者,您可以将其加载到带索引的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再次解析它更有效。