Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Sorting files
- X-seq: zsh-users 9244
- From: Christian Taylor <cht@xxxxxxxxx>
- To: "zsh-users" <zsh-users@xxxxxxxxxx>
- Subject: Re: Sorting files
- Date: Fri, 5 Aug 2005 14:57:18 +0200
- In-reply-to: <g3h6f1tsnq5ae63mane269rma0ao8r3ua3@xxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <20050804.203836.63133092.Meino.Cramer@xxxxxx> <200508042151.33462.cht@xxxxxxxxx> <g3h6f1tsnq5ae63mane269rma0ao8r3ua3@xxxxxxx>
zzapper wrote:
> >Meino Christian Cramer wrote:
> >> I played around with combinations including expressions like
> >> **/*(.,oL) trying to get a listing of all files found !including
> >> those of the subdirectories! sorted by their size. I want one big
> >> listing sorted "once" -- but I got "seperated" parts sorted each for
> >> themselves.
>
> Any chance of a summary of this interesting thread (assuming it's
> finished)?
I don't know if the thread is finished yet, but I'll try to sum up the things
I've learned so far. I'm no zsh expert, so pointing out errors would be much
appreciated:
According to the user guide and the actual behaviour of zsh (4.2.5) on my
system, this should do exactly what Meino wants, sorting all files by size
"in one go" (files from different subdirectories mixed together):
print -l -- **/*(.oL)
However, Meino replied to a similar suggestion "This gave me no sorted
output...sorry :O)" - unfortunately, I have no idea why this is so.
"print -l -- **/*(.,oL)" also sorts in one go, but unintentionally includes
EVERYTHING, because no glob qualifier other than sorting is given after the
comma ("match everything that is a regular file or anything at all").
The "od" sort option that was suggested puts files in subdirectories before
those in the current directory at each level of the search. "Od" does the
reverse.
The results of "**/*(.odoL)" seem a bit unexpected at first, because files of
all subdirectories are mixed together, but still all files of every
subdirectory appear before files in the respective parent directory, and the
whole list is sorted by size as far as this constraint allows.
"**/*(.odL)" doesn't work - zsh interprets the L as the regular size glob
qualifier with a missing size specification, because every sort qualifier has
to be directly preceded by "o" or "O".
However, if I understood Meino's goal correctly, he'll want neither "od" nor
"Od" in his glob qualifier.
That's about it, I hope this helps someone,
Christian
Messages sorted by:
Reverse Date,
Date,
Thread,
Author