Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Sort directory with complex numeric file names Post 302307200 by fdsayre on Wednesday 15th of April 2009 12:29:08 AM
Old 04-15-2009
Sort directory with complex numeric file names

I have a directory with a large number (1000s) of files and I need to produce a file listing all the files in the directory ordered "properly" (properly will be explained shortly).

The files have the following naming pattern:

bul_13_5_228_b.txt
bul_1_3_57.txt
bul_13_6_229.txt
bul_13_6_258.txt
bul_13_6_260.txt
bul_1_3_65.txt
bul_1_3_71.txt
bul_13_7_261.txt
bul_13_7_264.txt

Where field:
1 = "bul" and doesn't change
2 = range from 1 to 30
3 = range from 1 to 12
4 = range from 1 to the 1000s

The sorting pattern I want would sort the 2nd field first, in standard order (1, 2, 3... 10, 11 12...) then the 3rd field (1, 2, 3...) and finally the 4th field.

So, using the file names above as an example, the resulting file would sort like this:

bul_1_3_57.txt
bul_1_3_65.txt
bul_1_3_71.txt
bul_13_5_228_b.txt
bul_13_6_229.txt
bul_13_6_258.txt
bul_13_6_260.txt
bul_13_7_261.txt
bul_13_7_264.txt

I've tried variations of ls | sort and find but cannot seem to get this to work right.

Thanks.
Frank
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to sort directory names and use only last?

I need help writing a bash script for the windows cygwin environment. I'm not sure if bash is the optimal tool. Perhaps perl would be better? Either would work. I have directories whose names include the date they were created. The directory names are in the format of... (0 Replies)
Discussion started by: siegfried
0 Replies

2. UNIX for Dummies Questions & Answers

Change All File Names in a Directory

Hi, If I have a directory full of say 100 random files, and I would like to organize them, for example: FILE001, FILE002, FILE003, FILE004, etc. How would I do this from Terminal, instead of manually changing each file? I'm using Mac OS X, if that makes a difference. Thank you in advance... (8 Replies)
Discussion started by: andou
8 Replies

3. UNIX for Dummies Questions & Answers

How can I sort the file names in the directory

Hi , I have a list of files in the directory I want to sort based on the file name. But in the middle of filename contains the number based on that I need to sort.Could you suggest me on the same? Example filenames: /user1$ls RS.DEV.ISV.F1.RS.REFDATA.DATA... (1 Reply)
Discussion started by: praveen.thumati
1 Replies

4. Shell Programming and Scripting

Searching for file names in a directory while ignoring certain file names

Sun Solaris Unix Question Haven't been able to find any solution for this situation. Let's just say the file names listed below exist in a directory. I want the find command to find all files in this directory but at the same time I want to eliminate certain file names or files with certain... (2 Replies)
Discussion started by: 2reperry
2 Replies

5. Shell Programming and Scripting

Grepping file names, comparing them to a directory of files, and moving them into a new directory

got it figured out :) (1 Reply)
Discussion started by: sHockz
1 Replies

6. Shell Programming and Scripting

Help with sort word and general numeric sort at the same time

Input file: 100%ABC2 3.44E-12 USA A2M%H02579 0E0 UK 100%ABC2 5.34E-8 UK 100%ABC2 3.25E-12 USA A2M%H02579 5E-45 UK Output file: 100%ABC2 3.44E-12 USA 100%ABC2 3.25E-12 USA 100%ABC2 5.34E-8 UK A2M%H02579 0E0 UK A2M%H02579 5E-45 UK Code try: sort -k1,1 -g -k2 -r input.txt... (2 Replies)
Discussion started by: perl_beginner
2 Replies

7. Shell Programming and Scripting

Compare file names on directory

Dears, Would you please help on following bash script: I want to get the most recent file named alfaYYYYMMDD.gz in one directory: for example: in directory /tmp/ ls -ltr alfa20130715.gz holding.gz alfa20130705.gz sart.txt merge.txt.gz alfa20130802.gz my result shoud be... (1 Reply)
Discussion started by: maxsub
1 Replies

8. UNIX for Dummies Questions & Answers

[Solved] Reverse the order of a list of file names (but not sort them alphabetically or numerically)

Hello all, I have a list of file names in a text document where each file name consists of 4 letters and 3 numbers (for example MACR119). There are 48 file names in the document (they are not in alphabetical or numerical order). I would like to reorder the list of names so that the 48th name is... (3 Replies)
Discussion started by: MDeBiasse
3 Replies

9. Shell Programming and Scripting

Sort html based on .jar, .war file names and still keep text within three groups.

Output from zipdiff GNU EAR comparison tool produces output in html divided into three sections "Added, Removed, Changed". I want the output to be sorted by jar or war file. <html> <body> <table> <tr> <td class="diffs" colspan="2">Added </td> </tr> <tr><td> <ul>... (5 Replies)
Discussion started by: kchinnam
5 Replies

10. UNIX for Beginners Questions & Answers

Sort a text file based on names in square brackets

Hi all, I have a text file similar to this: Text More text Etc Stuff That Is Needed Etc Etc This contains over 70 entries and each entry has several lines of text below the name in square brackets. (5 Replies)
Discussion started by: Scally
5 Replies
HLS(1)							      General Commands Manual							    HLS(1)

NAME
hls - list files in an HFS directory SYNOPSIS
hls [options] [hfs-path ...] DESCRIPTION
hls lists files and directories contained in an HFS volume. If one or more arguments are given, each specified file or directory is shown; otherwise, the contents of the current working directory are shown. OPTIONS
-1 Output is formatted such that each entry appears on a single line. This is the default when stdout is not a terminal. -a All files and directories are shown, including "invisible" files, as would be perceived by the Macintosh Finder. Normally invisible files are omitted from directory listings. -b Special characters are displayed in an escaped backslash notation. Normally special or non-printable characters in filenames are replaced by a question mark (?). -c Sort and display entries by their creation date, rather than their modification date. -d List directory entries themselves rather than their contents. Normally the contents are shown for named directories on the command- line. -f Do not sort directory contents; list them in the order they appear in the directory. This option effectively enables -a and -U and disables -l, -s, and -t. -i Show the catalog IDs for each entry. Every file and directory on an HFS volume has a unique catalog ID. -l Display entries in long format. This format shows the entry type ("d" for directory or "f" for file), flags ("i" for invisible), file type and creator (four-character strings for files only), size (number of directory sub-contents or file resource and data bytes, respectively), date of last modification (or creation, with -c flag), and pathname. Macintosh "locked" files are indicated by "F" in place of "f". -m Display entries in a continuous format separated by commas. -q Replace special and non-printable characters in displayed filenames with question marks (?). This is the default when stdout is con- nected to a terminal. -r Sort entries in reverse order before displaying. -s Show the file size for each entry in 1K block units. The size includes blocks used for both data and resource forks. -t Sort and display entries by time. Normally files will be sorted by name. This option uses the last modification date to sort unless -c is also specified. -x Display entries in column format like -C, but sorted horizontally into rows rather than columns. -w width Format output lines suitable for display in the given width. Normally the width will be determined from your terminal, from the environment variable COLUMNS, or from a default value of 80. -C Display entries in column format with entries sorted vertically. This is the default output format when stdout is connected to a terminal. -F Cause certain output filenames to be followed by a single-character flag indicating the nature of the entry; directories are fol- lowed by a colon (:) and executable Macintosh applications are followed by an asterisk (*). -N Cause all filenames to be output verbatim without any escaping or question-mark substitution. -Q Cause all filenames to be enclosed within double-quotes (") and special/non-printable characters to be properly escaped. -R For each directory that is encountered in a listing, recursively descend into and display its contents. -S Sort and display entries by size. For files, the combined resource and data lengths are used to compute a file's size. -U Do not sort directory contents; list them in the order they appear in the directory. On HFS volumes, this is usually an alphabetical case-insensitive ordering, although there are some idiosyncrasies to the Macintosh implementation of ordering. This option does not affect -a, -l, or -s. SEE ALSO
hfsutils(1), hcd(1), hpwd(1), hdir(1), hcopy(1) FILES
$HOME/.hcwd AUTHOR
Robert Leslie <rob@mars.org> HFSUTILS
14-Jan-1997 HLS(1)
All times are GMT -4. The time now is 01:25 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy