Skip to content

Instantly share code, notes, and snippets.

@priyadarshan
Created August 10, 2012 17:15
Show Gist options
  • Save priyadarshan/3315811 to your computer and use it in GitHub Desktop.
Save priyadarshan/3315811 to your computer and use it in GitHub Desktop.
Remove one duplicate (as long as heading is numbered)
;;;; deduplicate.el
;; perlgex is
;; (\d+\.*\n*)([^\d]*\n)+
;; elisp is
;; "(\\d+\\.*\\n*)([^\\d]*\\n)+"
(require 'cl)
(require 'pcre2el)
(defun deduplicate (unit-count)
"Remove UNIT-COUNT duplicate headings"
(interactive)
(let ((x 1))
(while (<= x unit-count)
(re-search-forward
;; using Perl regexp for convenience
(rxt-pcre-to-elisp (concat "(" (number-to-string x) "\\.*\\n*)([^\\d]*\\n)+")) nil t)
(replace-match "")
(incf x))))
;; Test the code with
(deduplicate 2)
;; Test case
1.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec
hendrerit tempor tellus. Donec pretium posuere tellus. Proin quam
nisl, tincidunt et, mattis eget, convallis nec, purus.
2.
Cum sociis natoque penatibus et magnis dis parturient montes,
nascetur ridiculus mus. Nulla posuere. Donec vitae dolor. Nullam
tristique diam non turpis. Cras placerat accumsan nulla. Nullam
rutrum. Nam vestibulum accumsan nisl.
1.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec
hendrerit tempor tellus. Donec pretium posuere tellus. Proin quam
nisl, tincidunt et, mattis eget, convallis nec, purus.
2.
Cum sociis natoque penatibus et magnis dis parturient montes,
nascetur ridiculus mus. Nulla posuere. Donec vitae dolor. Nullam
tristique diam non turpis. Cras placerat accumsan nulla. Nullam
rutrum. Nam vestibulum accumsan nisl.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment