all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Sorting directory-files on their extension
@ 2009-10-07 14:35 Nordlöw
  2009-10-07 15:11 ` Nordlöw
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Nordlöw @ 2009-10-07 14:35 UTC (permalink / raw)
  To: help-gnu-emacs

Does Emacs contain any built-in features for sorting file-names (list
of strings) on their (file) extension?

/NOrdlöw


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Sorting directory-files on their extension
  2009-10-07 14:35 Sorting directory-files on their extension Nordlöw
@ 2009-10-07 15:11 ` Nordlöw
  2009-10-07 15:17   ` Pascal J. Bourguignon
  2009-10-07 15:12 ` Pascal J. Bourguignon
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 6+ messages in thread
From: Nordlöw @ 2009-10-07 15:11 UTC (permalink / raw)
  To: help-gnu-emacs

On Oct 7, 4:35 pm, Nordlöw <per.nord...@gmail.com> wrote:
> Does Emacs contain any built-in features for sorting file-names (list
> of strings) on their (file) extension?
>
> /NOrdlöw

Is this a good candidate?:

(defun compare-extensions (a b)
  (compare-strings
   (file-name-extension a) 0 (length (file-name-extension a))
   (file-name-extension b) 0 (length (file-name-extension b))))
;; Use: (sort '("a.c" "a.h" "b.c" "b.h") 'compare-extensions)

/Nordlöw


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Sorting directory-files on their extension
  2009-10-07 14:35 Sorting directory-files on their extension Nordlöw
  2009-10-07 15:11 ` Nordlöw
@ 2009-10-07 15:12 ` Pascal J. Bourguignon
  2009-10-07 15:59 ` Harry Putnam
  2009-10-07 16:04 ` Harry Putnam
  3 siblings, 0 replies; 6+ messages in thread
From: Pascal J. Bourguignon @ 2009-10-07 15:12 UTC (permalink / raw)
  To: help-gnu-emacs

Nordlöw <per.nordlow@gmail.com> writes:

> Does Emacs contain any built-in features for sorting file-names (list
> of strings) on their (file) extension?

Yes.  Emacs contains a built-in emacs lisp processor, which is able to
compute anything that is computable.

In this case:

    (sort file-list (lambda (a b)
                       (string< (file-name-extension a)
                                (file-name-extension b))))


-- 
__Pascal Bourguignon__


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Sorting directory-files on their extension
  2009-10-07 15:11 ` Nordlöw
@ 2009-10-07 15:17   ` Pascal J. Bourguignon
  0 siblings, 0 replies; 6+ messages in thread
From: Pascal J. Bourguignon @ 2009-10-07 15:17 UTC (permalink / raw)
  To: help-gnu-emacs

Nordlöw <per.nordlow@gmail.com> writes:

> On Oct 7, 4:35 pm, Nordlöw <per.nord...@gmail.com> wrote:
>> Does Emacs contain any built-in features for sorting file-names (list
>> of strings) on their (file) extension?
>>
>> /NOrdlöw
>
> Is this a good candidate?:
>
> (defun compare-extensions (a b)
>   (compare-strings
>    (file-name-extension a) 0 (length (file-name-extension a))
>    (file-name-extension b) 0 (length (file-name-extension b))))
> ;; Use: (sort '("a.c" "a.h" "b.c" "b.h") 'compare-extensions)

No, it doesn't work because compare-strings always return true, while
sort expects an order function that returns true only when a<b.

  (string< (file-name-extension a) (file-name-extension b))

is what you'd want.  If you want it case insignificant, you can use

  (string< (upcase (file-name-extension a))
           (upcase (file-name-extension b)))


-- 
__Pascal Bourguignon__


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Sorting directory-files on their extension
  2009-10-07 14:35 Sorting directory-files on their extension Nordlöw
  2009-10-07 15:11 ` Nordlöw
  2009-10-07 15:12 ` Pascal J. Bourguignon
@ 2009-10-07 15:59 ` Harry Putnam
  2009-10-07 16:04 ` Harry Putnam
  3 siblings, 0 replies; 6+ messages in thread
From: Harry Putnam @ 2009-10-07 15:59 UTC (permalink / raw)
  To: help-gnu-emacs

Nordlöw <per.nordlow@gmail.com> writes:

> Does Emacs contain any built-in features for sorting file-names (list
> of strings) on their (file) extension?

Someone here will have better help sooner or later but to get started.
Investigate the `sort-lines' command like this:

M-x apropos <RET> sort-lines <RET>

In the resulting buffer click or press enter on the command shown to
get the full documentation string.

sort-lines is an interactive compiled Lisp function in `sort.el'.

(sort-lines REVERSE BEG END)

,----
| Sort lines in region alphabetically; argument means descending order.
| Called from a program, there are three arguments:
| REVERSE (non-nil means reverse order), BEG and END (region to sort).
| The variable `sort-fold-case' determines whether alphabetic case affects
| the sort order.
`----

It looks like that BEG and END is indicating you can set the region to
sort on... I'm not sure if that means you can set it to the extension but
there is a start.

Another whole approach would be to call the external sort command
(assuming a unix or unix like OS) it has enough flags to set about
anything to sort on.

You can call an external command with `shell-command-on-region'
  C+Shift+\

It will give you a chance to setup the flags to sort at a command line.






^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Sorting directory-files on their extension
  2009-10-07 14:35 Sorting directory-files on their extension Nordlöw
                   ` (2 preceding siblings ...)
  2009-10-07 15:59 ` Harry Putnam
@ 2009-10-07 16:04 ` Harry Putnam
  3 siblings, 0 replies; 6+ messages in thread
From: Harry Putnam @ 2009-10-07 16:04 UTC (permalink / raw)
  To: help-gnu-emacs

Nordlöw <per.nordlow@gmail.com> writes:

> Does Emacs contain any built-in features for sorting file-names (list
> of strings) on their (file) extension?

Sorry about my first respons... I missed the part about this being a
dired kind of operation.

You'd need to use `wdired-mode' or from a dired buffer
`wdired-change-to-wdired-mode'

Which allows you to operate on a directory like it was a file... edit
etc then save.. will effect the directory on disk.

sort-lines may be useful there.





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-10-07 16:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-07 14:35 Sorting directory-files on their extension Nordlöw
2009-10-07 15:11 ` Nordlöw
2009-10-07 15:17   ` Pascal J. Bourguignon
2009-10-07 15:12 ` Pascal J. Bourguignon
2009-10-07 15:59 ` Harry Putnam
2009-10-07 16:04 ` Harry Putnam

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.