GNU bug report logs - #13032
24.3.50; Request: Provide a `delete-duplicate-lines' command

Previous Next

Package: emacs;

Reported by: Dani Moncayo <dmoncayo <at> gmail.com>

Date: Thu, 29 Nov 2012 19:26:01 UTC

Severity: wishlist

Found in version 24.3.50

Done: Juri Linkov <juri <at> jurta.org>

Bug is archived. No further changes may be made.

Full log


Message #64 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#13032: 24.3.50;
	Request: Provide a `delete-duplicate-lines' command
Date: Tue, 04 Dec 2012 08:04:13 +0100
Hi, just for info, here a simple and fast version.

Dani Moncayo <dmoncayo <at> gmail.com> writes:

>> This is what I currently use to delete duplicate lines:
>>
>>   C-u M-| awk -- '!a[$0]++' RET
>>
>> Do you intend to create a Lisp function with the same result?
>
> I don't know awk, but I've tried that command and seems to do what I
> want: remove all duplicate lines in the region.  Although it don't
> inform about the number of lines deleted, which is important to me.


--8<---------------cut here---------------start------------->8---
(defun delete-duplicate-lines (beg end)
  "Delete duplicate lines in region."
  (interactive "r")
  (save-excursion
    (save-restriction
      (narrow-to-region beg end)
      (let ((lines (helm-fast-remove-dups
                    (split-string (buffer-string) "\n" t)
                    :test 'equal)))
        (delete-region (point-min) (point-max))
        (loop for l in lines do (insert (concat l "\n")))))))
--8<---------------cut here---------------end--------------->8---

helm-fast-remove-dups is a function in helm:
https://github.com/emacs-helm/helm/blob/master/helm-utils.el
line 342

For the number of lines removed it is easy to modify the function to do
so.

-- 
  Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 





This bug report was last modified 12 years and 172 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.